Skip to content

$nextTick的使用

Vue 是异步执行 DOM 更新

1、只要观察到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变。如果同一个 watcher 被多次触发,只会被推入到队列中一次。

2、然后,在下一个的事件循环 tick 中,Vue 刷新队列并执行实际 (已去重的) 工作。Vue 在内部尝试对异步队列使用原生的 Promise.then 和 MessageChannel,如果执行环境不支持,会采用 setTimeout(fn, 0) 代替。

总结

  • 汇总data的修改,一次性更新视图,为的是减少DOM的操作次数,提高性能。

如果修改了data,则$nextTick会在DOM渲染之后被触发,可以获取最新的节点。

$nextTick用法