Vue.JS生命周期:代码阐释mounted/methods与computed/watched区别
通俗的解释 Vue.js 的生命周期
- beforecreate : 一般使用场景是在加 loading事件 的时候
- created :处于loading结束后,还做一些初始化,实现函数自执行(data数据已经初始化,但是DOM结构渲染完成,组件没有加载)
- beforemount:处于组件创建完成,但未开始执行操作
- mounted :处于发起后端请求,获取数据,配合路由钩子执行操作(DOM渲染完成,组件挂载完成 )
- beforeupdate、updated:处于数据更新的前后
- beforeDestroy:当前组件还在的时候,想删除组件
- destroyed :当前组件已被销毁,清空相关内容
重点是说下区别
- mounted 是生命周期方法之一,会在对应生命周期时执行。
- methods 是Vue实例对象上绑定的方法,供当前Vue组件作用域内使用,未调用不会执行,只执行逻辑,返回值可有可无。
- computed 是计算属性,也可以理解为一个方法。其中计算的结果如果不发生改变就不会触发,且必须返回一个值并在DOM中绑定的才能取得值。他可以自动获取数据的改变。
- watched 属性是手动定义的所需监听的值,不同的数据可以在其中多次定义监听值,这时会消耗一定性能,他并不能像computed那样自动改变。
用代码来理解
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
|
//watched属性:代码理解,它需指定监测的值是谁,然后相应的改变其他的值。
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Ke',
lastName: 'Junfeng',
fullName: 'Ke Junfeng'
},
watch: {
firstName: function (val) {
this.fullName = val + ' ' + this.lastName
},
lastName: function (val) {
this.fullName = this.firstName + ' ' + val
}
}
})
//computed属性:代码理解,它能自动获得数据有改变的值,然后return返回。
var vm = new Vue({
el: '#demo',
data: {
firstName: 'Ke',
lastName: 'Junfeng'
},
computed: {
fullName: function () {
return this.firstName + ' ' + this.lastName
}
}
})
|
THE END