什么是生命周期函数
每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
1,beforeCreate( 实例创建之前 )
在实例初始化之后,事件配置之前被调用,组件的选项对象还未创建
el 和 data 并未初始化,因此无法访问 methods,data, computed 等上的方法和数据
2,created ( 实例创建之后)
实例已经创建完成之后被调用,实例已完成以下配置:数据观测、属性和方法的运算,
watch/event 事件回调,完成了 data 数据的初始化,el还没有
3,beforeMount(组件挂载之前)
挂载开始之前被调用,相关的 render 函数首次被调用(虚拟 DOM)
把 data 里面的数据和模板生成 html,完成了 el 和 data 初始化,还没有挂在 html 到页面上
4,mounted (组件挂载之后)
挂载完成,模块中的HTML渲染到html页面只执行一次,可以做ajax操作,只会执行一次
5,beforeUpdate (数据改变,视图更新之前)
发生在虚拟 DOM 重新渲染和打补丁之前,可以在该钩子中进一步地更改状态,
不会触发附加地重渲染过程
6,updated(视图更新之后)
调用时,组件 DOM 已经更新,可以执行依赖于 DOM 的操作,该钩子在服务器端渲染期间不被调用
7,beforeDestroy (实例销毁之前)
在实例销毁之前调用,实例仍然完全可用,还可以用 this 来获取实例,做一些重置的操作
如清除掉组件中的定时器和监听的dom事件
8,destroyed(实例销毁后)
所以的事件监听器会被移出,所有的子实例也会被销毁,该钩子在服务器端渲染期间不被调用
9,activated
被 keep-alive 缓存的组件激活时调用。
10,deactivated
被 keep-alive 缓存的组件停用时调用
11,errorCaptured
2.5.0+ 新增当捕获一个来自子孙组件的错误时被调用