前端VUE框架学习

前言

工作需要,系统的学习一下vue,之前工作过程中也只是了解,并没有系统学习过,这里学习记录一下。

引用

  • 核心语法引用B站Up:吴悠讲编程
    • 入门看的这个,说的条理可以的,剩下的可以仔细研读vue的官方文档

一些概念

  • VUE是一个渐进式的JavaScript的框架
  • VUE支持组件化开发

VUE核心语法

PS:对照下文的示例代码结合起来看

    1. 响应式与插值表达式
    • 插值表达式:
      • 数据读取
      • 简单的逻辑计算
    • methods封装
    • 响应式:
      一个响应式示例
    1. 计算属性(conputed):计算属性具有缓存特性
    1. 侦听器:监听数据变动,主要是用在除了更新页面数据之外,还要处理一些额外的动作的时候,用到这个功能。
    1. 内容指令:简化了一些元素处理方式(封装了)
    • 内容指令

    • 渲染指令
      一个v-if的示例
      一个vif的示例

      一个vshow示例
      一个vshow示例

    • 属性指令

    • 事件指令
      一个事件绑定的示例
      一个事件绑定的示例

    • 表单指令:只能使用在表单元素,v-modle来实现双向绑定效果。实例中是通过一个input框(数据)与一个p标签(视图),当绑定同一个响应式数据inputValue的时候,这时候就可以通过修改input内容,来同时可以和视图联动变化

    1. 修饰符:实现一些与指令相关的常用操作,目标简化代码与DOM操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>

<body>
<div id="box"></div>
<div id="app">
<!-- 1.2 插值表达式 -->
<p>{{ title }}</p>
<p>{{ content }}</p>
<p>{{ 1 + 2 + 3 }}</p>
<p>{{ output() }}</p>
<p>{{ output() }}</p>
<p>{{ output() }}</p>
<p>{{ outputContent }}</p>
<p>{{ outputContent }}</p>
<p>{{ outputContent }}</p>
<!-- 4.1 内容指令 -->
<!-- 这个跟以前的textContent和innerHtml功能是一致的 -->
<p v-text="htmlContent">123</p>
<p v-html="htmlContent">123</p>
<!-- 4.2 渲染指令 -->
<p v-for="item in 5">这是通过for渲染指令渲染出来的5个p标签</p>
<!-- 注意这里的(item, key, index),是渲染指令里面特有的方式,说白了可以灵活遍历list和map的方式
其中,item是值,key是键,index索引序号
-->
<p v-for="(item, key, index) in arr">这是v-for遍历响应式arr数组的结果:{{ item }}</p>
<!-- 通过一个bool值来控制一个元素是否创建或者销毁 -->
<p v-if="true">标签内容true显示</p>
<!-- 对应的就是直接不创建标签 -->
<p v-if="false">标签内容false</p>
<!-- 对应的就是display: none -->
<p v-show="false">标签内容false</p>

<!-- 4.3 属性指令 -->
<p title="标题">这是属性</p>
<!-- 这个属性绑定就灵活了 -->
<p v-bind:title="title">这是属性绑定的</p>
<p :title="title">这是属性绑定的另外一种写法</p>

<!-- 4.4 事件指令 -->
<button v-on:click="output">这是一个按钮</button>
<button @click="output">这是事件简写按钮</button>

<!-- 4.5 表单指令 只能使用在表单元素,v-modle来实现双向绑定效果-->
<input type="text" v-model="inputValue">
<p v-text="inputValue"></p>

<!-- 5. 修饰符 实现指令相关的常用操作 -->
<!-- trim就是将两边空格去除 -->
<input type="text" v-model.trim="inputValue">
</div>
<script src="./vue.min.js"></script>
<script>
// let value = '这是内容'
// document.getElementById('box').textContent = value
// value = '系内容'
// document.getElementById('box').textContent = value
// 1. 响应式数据与插值表达式
const vm = new Vue({
el: '#app',
data () {
return {
title: '这是标题内容!',
content: '这是标题文本!',
htmlContent: '这是一个<span>span</span>标签',
arr: ['a', 'b', 'c', 'd'],
inputValue: '默认输入内容'
}
},
// 1.3 函数的使用
methods: {
output () {
console.log('methods执行了')
return '读取标题为:' + this.title + ', 内容为:' + this.content
}
},
// 2. 计算属性
computed: {
outputContent () {
console.log('computed执行了')
return '读取标题为:' + this.title + ', 内容为:' + this.content
}
},
// 3. 侦听器
watch: {
title (newValue, oldValue) {
console.log('新值:' + newValue, '旧值:' + oldValue)
}
}
})
</script>
</body>

</html>

脚手架

  • Vue CLI是官方打造的一个webpack脚手架工具

1. 先安装node

这里不过多介绍
在vscode里面打开终端的时候,调用的是PowerShell,执行的时候可能会报一个错:

1
2
3
PS G:\Develop\vscode\learnvue\vuecli> npm --version
npm : 无法加载文件 G:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1

只需在PS管理员模式下,执行如下命令即可。

1
2
3
4
5
6
7
PS C:\Windows\system32> Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): A
PS C:\Windows\system32>

2. 安装vuecli

通过npm执行执行

1
npm install @vue/cli -g

3. 创建初始化项目

1
vue create my-vue-project

生成后的项目,如下下图所示结构:
vue_create创建

细致解答

组件化开发