Vue2.x的生命周期
Vue
一旦创建好实例就会拥有完整的生命周期
beforeCreate
(创建前):所有的东西都没有开始,此时data
的响应式追踪、event
/watcher
都没有被设置,即无法访问到data
、computed
、watch
、methods
上的方法和数据created
(创建后):此时实例已经创建完成了,实例上配置的options
包括data
、computed
、watch
、methods
等配置都已完成,但是此时渲染的节点还未挂载到DOM,所以不能访问到$el
beforeMount
(挂载前):实例的配置都已经完成,data
里面的数据已经生成模板html
。但是html
还没有挂载到html
页面上mounted
(挂载后):el
被新创建的vm.$el
替换,并在实例挂载上去之后调用,模板中的html
完成渲染到html
页面中beforeUpdate
(更新前):响应式数据更新时调用,虽然响应式数据更新了,但是对应的真实DOM还没有被更新updated
(更新后):由于数据更改导致虚拟DOM重新渲染和打补丁(patch)之后调用,可以进行依赖于DOM的操作;应该尽可能的避免在此钩子更改状态,有可能到导致无限循环更新beforeDestroy
(销毁前):实例销毁之前调用,这里的实例仍然可用,this
仍然可以获取到destroyed
(销毁后):实例销毁后调用,调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务端渲染期间不被调用。
另外keep-alive
也提供了一下生命周期
activated
:被 keep-alive 缓存的组件激活时调用。deactivated
:被 keep-alive 缓存的组件失活时调用。errorCaptured
:在捕获一个来自后代组件的错误时被调用。