生命周期又名生命周期回调函数、生命周期函数、生命周期钩子。
生命周期是什么?
vue在关键时刻帮我们调用的一些特殊名称的函数。
注意:
1.生命周期的函数名不可更改,但函数的具体内容是根据需求编写。
2.生命周期函数中的this指向的是vm 或 组件实例对象。
完整的生命周期:
1.beforeCreate:此时无法通过vm访问到data中的数据、method中的方法。(可使用debugger断点证明)
2.created:此时可以通过vm访问到data中的数据、methods中配置的方法。
此阶段的vue开始解析模板,生成虚拟的DOM(内存中),页面还不能显示解析好的内容。
3.beforeMount:此时页面展示的是未经编译的DOM结构;所有对DOM的操作都不奏效。
将内存中的虚拟DOM转换为真实DOM插入界面。(为什么在之前对DOM的操作都不奏效的原因)
4.mounted:此时页面展现的是经过vue编译的DOM,此时对DOM元素的操作均奏效(尽可能避免)。vue完成模板的解析并把真实DOM元素放入界面后调用mounted函数。(一般在此阶段进行开启定时器、发送网络请求、订阅消息、绑定自定义事件、等初始化操作)
更新操作:
5.beforeUpdate:此时数据是新的,但页面是旧的。即:页面和数据没有保持同步。
根据新数据,生成新的虚拟DOM,随后和旧的虚拟DOM进行比较,最终完成页面的更新,即完成了Model->View的更新
6.updated:此时数据是新的,页面也是新的。
7.beforeDestroy:此时,vm中所有的data、methods、指令等等都处于可用状态,马上要执行销毁过程,一般在此阶段:关闭定时器、取消订阅消息、解绑自定义事件等收尾操作。
8.destoryed:销毁