为什么需要 nextTick
Vue 是异步修改 DOM 的并且不鼓励开发者直接接触 DOM,但有时候业务需要必须对数据更改==》刷新后的 DOM 做相应的处理,这时候就可以使用 Vue.nextTick(callback)这个API了。
准备
在理解nextTick原理之前,我们先说一下事件循环(EventLoop)中的宏任务和微任务 。
常见的宏任务:script, setTimeout, setInterval, setImmediate, I/O, UI rendering等;
常见的微任务有 process.nextTick(Nodejs),Promise.then(), MutationObserver等;
注意,nextTick 是微任务! 是微任务! 是微任务!
nextTick 的原理
nextTick 的原理正是 Vue 通过异步队列控制 DOM 更新和 nextTick 回调函数先后执行的方式。
将DOM操作转换成微任务执行。