Vue.nextTick DOM 更新循环结束之后执行延迟回调

Posted corexin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue.nextTick DOM 更新循环结束之后执行延迟回调相关的知识,希望对你有一定的参考价值。

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

简单来说,Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图更新。

知乎上的例子

 

//改变数据
vm.message = ‘changed‘

//想要立即使用更新后的DOM。这样不行,因为设置message后DOM还没有更新
console.log(vm.$el.textContent) // 并不会得到‘changed‘

//这样可以,nextTick里面的代码会在DOM更新后执行
Vue.nextTick(function(){
    console.log(vm.$el.textContent) //可以得到‘changed‘
})

 

以上是关于Vue.nextTick DOM 更新循环结束之后执行延迟回调的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 之 nextTick

Vue.nextTick(callback)

Vue.nextTick(callback)

从Vue.nextTick探究事件循环中的线程协作机制

vue中的$nextTick()

Vue.nextTick 的原理和用途