生命周期
- 三个阶段
指的是一个组件从创建
->运行
->销毁
的整个阶段
主要函数
-
created ( )
(1).调用次数:一次
(2).可实现操作:
组件props、data、methods
已创建好,都可用
!
一般在该函数中发起ajax请求
。
但是组建的模板结构尚未生成!不能操作DOM
。 -
mounted ( )
(1).调用次数:一次
(2).可实现操作:已将内存html结构成功渲染到浏览器中,此时浏览器中已包含当前组件的DOM结构,此时可以操作DOM
。 -
undated ( )
(1).调用次数:n次
(2).操作:由于数据更改导致的虚拟 DOM 重新渲染,在这之后会调用该函数。被调用时,组件 DOM 已经更新,所以可以执行依赖于 DOM 的操作
。
(3).区别于: $ nextTick在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。this.$nextTick()可以用作局部的数据更新后DOM更新结束后的操作,全局的可以用updated生命周期函数
// 修改数据
vm.msg = 'Hello'
// DOM 还没有更新
Vue.nextTick(function () {
// DOM 更新了
})
注意,updated 不会保证所有的子组件也都被重新渲染完毕。如果你希望等到整个视图都渲染完毕,可以在 updated 里使用 vm.$nextTick:
updated: function () {
this.$nextTick(function () {
// 仅在整个视图都被重新渲染之后才会运行的代码
})
}