Vue实例构造-1

2017-01-11  本文已影响165人  Vinctor

data

注意:由于在Vue对象创建的时候进行对象的getter/setter
创建以及属性监听注册,故需要在new Vue的时候声明添加全部的数据对象,而不能在其他地方进行动态添加,那样是非响应的

computed

计算属性中的缓存:计算属性中return返回的结果如果依赖于其他数据对象:
computed: {
// a computed getter
reversedMessage: function () {
// this points to the vm instance
return this.message.split('').reverse().join('')
}
}

vue会将reversedMessage的结果缓存,如果所依赖的message对象没有改变,再次访问reversedMessage对象时,避免重复多次计算;同时,当message改变时,reversedMessage会响应的改变值

el

生命周期

Paste_Image.png

befoeCreate

在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。

此时:Vue实例刚刚创建完成,el 和 data 以及事件 并未初始化(undefined

created

实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。

此时:data,事件初始化完成,el未初始化

beforeMount

此时:挂载之前的状态,el初始化完成,但是并未将组件数据等内容挂载到el上

mounted

此时:完成挂载,将data数据等填充至相应的{{data}}中

所以可以在此mounted进行页面网络数据的获取
以上4个状态,日志数据如下图:


Paste_Image.png

beforUpdate

数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。
你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。

当执行类似于:app.message= 'yes !! I do';

data数据更新完之后,先调用此方法,然后再去改变UI试图

update

试图更新完之后,回调这个方法

以上两个生命周期状态如下图:


Paste_Image.png

beforeDestory

实例销毁之前调用。在这一步,实例仍然完全可用。

Destory

Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑,所有的事件监听器会被移除,所有的子实例也会被销毁。

上一篇 下一篇

猜你喜欢

热点阅读