nextTick
是一个全局的异步队列,用于在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,可以在回调中执行依赖于DOM的操作。
当你设置了一些数据,Vue将这些数据的DOM更新排入队列。如果你立即访问DOM,可能还是旧的DOM。为了确保在DOM更新完成后执行某些操作,你可以使用nextTick
。
// 修改数据
this.message = 'updated message'
// DOM 还没有更新
console.log(this.$el.textContent) // 输出 'old message'
// 使用 nextTick 确保DOM已经更新
this.$nextTick(function () {
// DOM 更新了
console.log(this.$el.textContent) // 输出 'updated message'
})