vue生命周期
1. beforeCreate
在实例初始化之后,在数据监测,数据代理之前被调用,此时组件的选项对象还未创建,el 和 data 并未初始化,因此无法访问methods, data, computed等上的方法和数据。
2. created
数据监测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
created钩子可以获取Vue的data,调用Vue方法,获取原本HTML上的直接加载出来的DOM,但是无法获取到通过挂载模板生成的DOM(例如:v-for循环遍历Vue)
3.beforemount
1.页面呈现的是未经Vue编译的DOM结构
2.所有对DOM的操作,最终都不奏效
4.mount
1.页面中呈现的是经过Vue编译的DOM,
2.对DOM的操作均有效(尽可能避免),至此初始化过程结束,一般在此进行:
开启定时器,发送网络请求,订阅消息,绑定自定义事件,等初始化操作
mounted之前,“虚拟”的dom节点被真实的dom节点替换,并将其插入到dom树中,于是在触发 mounted时,可以获取到$el为真实的dom元素()
5. beforeupdate
此时数据是新的,但是页面还未同步
数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
当我们更改Vue的任何数据,都会触发该函数
6.update
数据是新的,页面也已同步更新
7.beforeDestroy
此时vm中所有的data,methods,指令等等,都是可用的,马上执行销毁流程。
一般在此阶段: 关闭定时器,取消订阅消息,解绑自定义事件
8.destroy
销毁完毕