nextTick钩子是保证运行的回调在数据和dom更新之后执行,底层是nextTick的回调会加在微任务队列的最后,当vue调度队列注册的微任务的回调全部完成之后,把nextTick的回调推入微任务队列,这样就保证了回调运行时候数据和dom都是最新的。实现思路主要是通过promise。then实现。常见误用:不需要等待 DOM 更新的场景中滥用就去调用nextTick
作用:等待 Vue 完成下一次 DOM 更新后再执行你的回调函数的代码,确保能操作最新DOM; 实现思路:借助JS异步机制,优先使用微任务,降级使用宏任务的策略,异步执行; 常用的误用:一是在created使用nextTick,此时 DOM 尚未渲染,操作无效,二是在nextTick的回调函数中继续修改响应式数据,可能会导致更新循环;