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