由来:
Vue中DOM更新是异步
Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,
而是等同一事件循环中的所有数据变化完成之后,再统一进行视图更新。
触发条件:
在同一事件循环中的数据变化后,DOM完成更新,立即执行nextTick(callback)内的回调。
注意:
1. 在 created 和 mounted 阶段,如果需要操作渲染后的试图,也要使用 nextTick 方法。
2. mounted 不会承诺所有的子组件也都一起被挂载。
如果希望等到整个视图都渲染完毕,可以用 vm.$nextTick 替换掉 mounted
实例:
mounted: function () {
this.$nextTick(function () {
// Code that will run only after the
// entire view has been rendered
})
}
3. 在同一事件循环中,只有所有的数据更新完毕,DOM才开始渲染,页面才开始展现,才会调用nextTick
4. 在同一事件循环中,如果存在多个nextTick,将会按最初的执行顺序进行调用