当在代码中更新了数据,并希望等到对应的Dom更新之后,再执行一些逻辑。这时,我们就会用到$nextTick官方文档对nextTick的解释是:。从timerFunc被调用到flushCallbacks被调用期间pending为true即一个事件循环周期在pending期间加入的回调函数,会被已经等待执行的flushCallbacks函数给执行。核心机制看完源码,发现除了利用了一个微任务的机制,和Dom更新一点关系都没有哇。但是问题又来了,根据浏览器的渲染机制,渲染线程是在微任务执行完成之后运行的。因为,渲染线程只是把Dom树渲染成UI而已,Vue更新Dom之后,在Dom树里,新的Dom节点已经存在了,js线程就已经可以拿到新的Dom了。除非开发者读取Dom的计算属性,触发了强制重流渲染线程才会打断js线程。

全面解析Vue中的$nextTick

全面解析Vue中的$nextTick

全面解析Vue中的$nextTick