生命周期让我们在控制整个vue时更容易形成更好的逻辑,可以分为三个阶段,挂在阶段、更新阶段、销毁阶段
分别:
创建前:beforeCreate() 只有一些实例本身的事件和生命周期
创建后:Create() 是最早使用data和methods 中数据的钩子函数
挂在前:beforeMount() 指令已经解析完毕,内存中已经生成dom树
挂在后:Mounted() dom渲染完毕页面和内存中已经生成dom树
更新前:beforeUpdate() 当data的数据发生改变会执行这个钩子,内存中的数据是新的,页面是旧的
更新后:Updated() 内存和页面都是新的
销毁前:beforeDestroy() 即将销毁data和methods 中的数据此时还是可以使用的,可以做一些释放内存的操作
销毁后:Destroyed() 已经销毁完毕
创建前/后:在beforeCreated
阶段,vue实例的挂在元素$el
和数据对象data
都为data
都为undefined
,还未初始化。在created
阶段,vue实例的数据对象data
有了,$el
还没有。
载入前/后: 在beforeMount
阶段,vue实例的$el
和data
都初始化了,但还是挂载之前为虚拟的dom节点,data.message
还未替换。在mounted
阶段,vue实例挂载完成,data.message
成功渲染。
更新前/后: 当data
变化时,会触发beforeUpdate
和updated
方法。
销毁前/后: 在destroy
阶段,对data
的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在。destroyed
阶段,组件销毁