vue生命周期包含有:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed
各个钩子函数阶段特征
beforeCreate
- 这是我们遇到的第一个周期函数,表示实例完全被创建出来之前,会执行它
-
注意在beforeCreate 生命周期函数执行的时候,data 和 methods中的数据都还没有初始化
created
-
这是遇到的第二个周期函数,在created中data和methods已经被初始化好了
-
如果要调用methods中的方法,或者操作data中的数据,最早,只能在created中操作
beforeMount
- 这是遇到的第3个生命周期函数,表示模板已经在内存中编辑完成,但是尚未把模板渲染到页面中
-
在beforeMount执行的时候,页面中的元素,还没有被真正替换过来,只是之前的一些模板字符串
mounted
-
这是遇到的第4个生命周期函数,表示内存中的模板,已经真实的挂载到页面中,用户已经可以看到渲染好的页面了
-
注意:mounted 是实例创建期间最后一个生命周期函数,当执行完mounted就表示实例已经被完全创建好了
-
此时如果没有其它操作的话,这个实例,就静静的躺在我们的内存中,一动不动
接下来的是运行中的两个事件
beforeUpdate
- 这时候,表示我们的界面还没有被更新【数据被更新了吗? 数据肯定被更新了,也就是model更新了】
-
当执行beforeUpdate 的时候,页面中的显示的数据,还是旧的,此时data数据是最新的,页面尚未和最新的数据保持同步
updated
-
执行的时候,页面和data数据已经保持同步了,都是最新的
beforeDestroy
- 当执行beforeDestroy钩子函数的时候,vue实例就已经从运行阶段,进入到了销毁阶
段 - 当执行beforeDestroy的时候,实例身上所有的data和所有的methods,以及过滤
器、指令一·一都处于可用状态,此时,还没有真正执行销毁的过程
destroyed
- 当执行到destroyed函数的时候,组件已经被完全销毁了,此时,组件中的所有的数据,方法,指令,过滤器...都已经不可用了