Vue实践与总结——生命周期
生命周期钩子
Vue生命周期初始化调用的函数:
new Vue();
initMixin(Vue);
stateMixin(Vue);
eventsMixin(Vue);
lifecycleMixin(Vue);
renderMixin(Vue);
-
创建
beforeCreate()
在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。初始化阶段,应用不多。
created()
在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el
property 目前尚不可用。 -
挂载
beforeMount()
在挂载开始之前被调用:相关的render
函数首次被调用。
mounted()
该阶段执行完了模板解析,以及挂载。同时组件根组件元素被赋给了$el
属性,该阶段可以通过 <u>DOM</u> 操作来对组件内部元素进行处理了。 -
更新
beforeUpdate()
数据更新时调用,但是还没有对视图进行重新渲染,这个时候,可以获取视图更新之前的状态。
updated()
由于数据的变更导致的视图重新渲染,可以通过 <u>DOM</u> 操作来获取视图的最新状态。 -
卸载
beforeDestory()
实例销毁之前调用,移除一些不必要的冗余数据,比如定时器。
destoryed()
Vue 实例销毁后调用。 -
其它
.$nextTick()
将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法Vue.nextTick
一样,不同的是回调的this
自动绑定到调用它的实例上。
与 updated
有些类似,this.$nextTick()
可以用作局部的数据更新后DOM更新结束后的操作,全局的可以用 updated
生命周期函数。
errorCaptured()
当捕获一个来自子孙组件的错误时被调用,此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false
以阻止该错误继续向上传播。
生命周期应用
created:进行ajax请求异步数据的获取、初始化数据
mounted:挂载元素dom节点的获取
$nextTick:针对单一事件更新数据后立即操作dom
updated:任何数据的更新