Vue 在更新 DOM 时采用异步策略。当响应式数据变化触发组件重新渲染时,Vue 不会立即同步更新 DOM,而是将更新任务放入队列,等到同一事件循环内的数据变化都发生后,再在下一个微任务中统一执行 DOM 更新。这样做可以避免因数据连续变化导致的重复渲染。
nextTick 用于在下次 DOM 更新完成后执行回调。由于 DOM 更新是异步的,当你在修改数据后立即读取 DOM 或依赖更新后的界面状态时,直接访问得到的往往是旧结果。通过 nextTick 注册的回调,会在 Vue 完成 DOM 更新之后运行,从而拿到最新的界面状态。
nextTick 常用于需要在数据变化后操作更新后的 DOM 的场景,例如修改数据后获取元素尺寸、滚动位置,或在第三方图表、富文本库中同步数据后再调用其刷新方法。合理使用 nextTick 能保证回调执行时机与 DOM 更新一致。