一、vue生命周期有哪些?
beforeCreate created 创建前 创建后
beforeMount mounted 挂载前 挂载后
beforeUpdate updated 更新前 更新后
beforeDestroy destroyed 销毁前 销毁后
二、使用了keep-alive 会多两个生命周期
activated
deactivated
三、对生命周期的理解
-
创建前 beforecreate
vue实例$el和数据对象 data 都为undefined,还未初始化。 -
created 创建后
vue数据对象data有了,但是vue实例的 $el 还没有 -
beforemount 挂载前
vue的实例$el和数据对象data 都已经初始化了,但是还是挂载的为之前的虚拟dom节点 data.msg还未替换
4.mounted 挂载后
vue实例挂载完成,data.msg成功渲染
5.beforeupdate 更新前
当data变化的时候回触发两个钩子函数
当beforeupdate 页面中显示的数据还是旧的,此时data数据是最新的,页面尚未和最新的数据保持同步
6.updated 更新后
updated执行的时候,页面的数据和data保持了同步,都是最新的了。
7.beforedestroy 销毁前
当销毁时会触发beforedestroy 和 destroyed 这两个钩子函数
beforeDestroy 销毁前
当执行beforeDestroy钩子函数的时候,实例身上的所有的data和所有的methods,以及过滤器,指令都处于可用状态,此时还没有进入真正的销毁过程,
destroyed 销毁后
当执行destroyed的时候组件已经完全销毁了,此时所有的组件的所有数据方法,指令过滤器,都已经不可用了