文章目录
生命周期有哪些?
- 生命周期分为八个阶段:
- 创建前后,载入前后,更新前后,销毁前后
- 以及一些特殊场景的生命周期
beforeCreate
- 组件实例化被创建之前,当前阶段data、methods、computed以及watch上的数据和方法都不能被访问
created
- 组件实例已经完全创建,在实例创建完成后发生,当前阶段已经完成了数据观测,也就是可以使用数据,更改数据,在这里更改数据不会触发updated函数,也就是不会更新视图,SSR可以放这里。
beforeMount
- 组件挂载之前,完成模板编译,虚拟Dom已经创建完成,即将开始渲染。在此时也可以对数据进行更改,不会触发updated
mounted
- 组件挂载到实例上去之后,将编译好的模板挂载到页面 (虚拟DOM挂载) ,可以在这进行异步请求以及DOM节点的访问,在vue用$ref操作。
beforeUpdate
- 组件数据发生变化, 组件数据更新之前调用,数据都是新的,页面上数据都是旧的 组件即将更新,准备渲染页面 , 可以在当前阶段进行更改数据,不会造成重渲染。
update
- 数据数据更新之后, render重新渲染 , 此时数据和界面都是新的 ,要注意的是避免在此期间
更改数据
,因为这可能会导致无限循环
的更新。
beforeDestroy
- 组件实例销毁之前,在当前阶段实例完全可以被使用,我们可以在这时进行善后收尾工作,比如
清除计时器
destroyed
- 组件实例销毁之后, 组件已被拆解,数据绑定被卸除,监听被移出,子实例也统统被销毁。
activated
- keep-alive 缓存的组件被激活时调用
deactivated
- keep-alive 缓存的组件被停用时调用
errorCaptured
- 捕获一个来自子孙组件的错误时被调用