Vue2.x的生命周期
Vue一旦创建好实例就会拥有完整的生命周期
beforeCreate(创建前):所有的东西都没有开始,此时data的响应式追踪、event/watcher都没有被设置,即无法访问到data、computed、watch、methods上的方法和数据created(创建后):此时实例已经创建完成了,实例上配置的options包括data、computed、watch、methods等配置都已完成,但是此时渲染的节点还未挂载到DOM,所以不能访问到$elbeforeMount(挂载前):实例的配置都已经完成,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:在捕获一个来自后代组件的错误时被调用。