1.v-if
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。
2.v-for
我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。
3.v-on:click
监听事件:可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。
事件处理方法:然而许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 还可以接收一个需要调用的方法名称。
4.v-model
6.vue生命周期
vue有8个生命周期
1.beforeCreate(创建前)
2.created(创建前)
3.beforeMount(载入前)
4.mounted(载入后)
5.beforeUpdate(更新前)
6.updated(更新后)
7.befireDestroy(销毁前)
8.destroyed(销毁后)
vue第一次加载页面就会触发 1,2,3,4,DOM的渲染在4周期中就已经完成了
beforeCreate
1 .进行初始化事件,this指向创建的实例
2 .不能访问到data
3 .不能访问computed
4 .不能访问watch
5 .不能访问methods
6 .以上的方法和数据
7 .用来初始化非响应变量
created钩子
1 .实例创建完成
2 .数据已经和data属性绑定,此时放在data中的属性值发生改变的同时,视图也会改变
3 .可以初始化ajax请求了
4 .可以访问data
5 .可以访问computed
6 .可以访问watch
7 .可以访问methods
8 .可以访问到以上的方法和数据
9 .未挂载到DOM
10 .不能访问到ref属性内容为空数组
beforeMount
1 .判断是否有el选项,有就继续,没有就停止编译,除非调用vm.$moune(el)
2 .是否有template参数选项
1 .有template参数选项,将模板编译为render函数
2 .没有template选项,将外部html作为模板编译
3 .template中的模板优先级要高于outer HTML的优先级
<body>
<div id="app">
<!--html中修改的-->
<h1>{{message + '这是在outer HTML中的'}}</h1>
//有template属性的时候这个就不会被渲染了
</div>
</body>
<script>
var vm = new Vue({
el: '#app',
template: "<h>{{message +'这是在template中的'}}</h1>", //在vue配置项中修改的
data: {
message: 'Vue的生命周期'
}
</script>
3 .如果Vue对象中还有一个render函数的话,那么又会先渲染render函数里面的内容。所以这是有优先级的
4 .模板编译完成,但是未挂载,无法获取dom
5 .给实例对象添加
e
l
成
员
6.
在
挂
载
开
始
前
被
调
用
,
在
b
e
f
o
r
e
M
o
u
n
t
之
前
,
会
找
到
对
应
的
t
e
m
p
l
a
t
e
,
并
编
译
成
r
e
n
d
e
r
函
数
m
o
u
n
t
e
d
1.
在
m
o
u
n
t
e
d
之
前
还
是
通
过
m
e
s
s
a
g
e
进
行
占
位
的
,
因
为
还
没
有
挂
载
到
页
面
上
,
还
是
在
j
s
中
以
虚
拟
d
o
m
形
式
存
在
的
2.
m
o
u
n
t
e
d
之
后
换
成
了
我
们
想
要
的
样
子
3.
实
例
挂
载
到
D
O
M
上
,
此
时
可
以
通
过
D
O
M
a
p
i
获
取
到
D
O
M
节
点
。
4.
el成员 6 .在挂载开始前被调用,在beforeMount之前,会找到对应的template,并编译成render函数 mounted 1 .在mounted之前还是通过{{message}}进行占位的,因为还没有挂载到页面上,还是在js中以虚拟dom形式存在的 2 .mounted之后换成了我们想要的样子 3 .实例挂载到DOM上,此时可以通过DOM api获取到DOM节点。 4 .
el成员6.在挂载开始前被调用,在beforeMount之前,会找到对应的template,并编译成render函数mounted1.在mounted之前还是通过message进行占位的,因为还没有挂载到页面上,还是在js中以虚拟dom形式存在的2.mounted之后换成了我们想要的样子3.实例挂载到DOM上,此时可以通过DOMapi获取到DOM节点。4.ref属性可以访问
5 .常用于获取VNode信息ajax请求
beforeUpdate
1 .当data中的数据发生了改变,会触发对应组件的重新渲染
2 .响应式数据更新时调用,发生在虚拟dom打补丁之前
3 .适合在试图更新之前访问现有dom,比如手动移除或者添加事件监听器
updated
1 .虚拟dom重新渲染和打补丁之后调用,组件dom已经更新,可执行依赖dom的操作
2 .避免在这个钩子中操作数据,不然可能陷入死循环
beforeDestory
1 .实例销毁之前调用,这一步实例仍然可以使用,this仍然可以获取实例
2 .常用于销毁定时器,解绑全局事件,销毁插件对象等操作
destoryed
1 .实例销毁之后调用,调用后,Vue实例指示的所有东西都会解绑,所有事件监听器都会被移除,所有子实例也会被销毁.