通俗的解释 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 } } }) |