什么是生命周期?
vue实例从创建到销毁会经历一系列的特定过程称为生命周期
在这些过程中执行的回调函数,称为生命周期钩子函数
生命周期函数
生命周期钩子函数 | 组件状态 | 常见用法 |
---|---|---|
创建前beforeCreate | this指向创建的实例, 还不能访问 data、computed、methods | 初始化非响应式变量 |
创建完毕created | 可以访问data、methods ;但是未挂载到DOM,并且还不能访问 $el属性 ,$ref 属性内容此时为空数组 | 简单的ajax请求, 页面的初始化 |
挂载前beforeMount | 在beforeMount之前,会找到对应的 template,并编译成render函数 | – |
挂载完毕mounted | vue实例挂载到了DOM上,$el属性 ,$ref 均能访问 | 获取VNode信息、ajax请求 |
更新前beforeUpdate | data发生变化,即DOM发生变化 | 适合在更新之前访问现有的DOM 如手动移除已添加的事件监听器 |
更新完毕updated | 组件DOM已更新,可执行依赖于DOM的操作 | 在这个钩子函数中操作数据, 可能陷入死循环。尽量避免 |
销毁前beforeDestroy | 实例销毁之前调用。此时, 实例依然可以使用,this能获取到实例 | 常用于销毁定时器、 解绑全局事件、销毁插件对象等 |
销毁完毕destroyed | 实例销毁后调用,调用后, vue实例数据解除绑定,事件监听器被移除, 子实例都被销毁 | – |