vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响

vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响

vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响


回答:

因为宏任务有可能延时太长了。导致界面上的显示并不是你想要的。

举个例子。你执行了一堆计算,nextTick 里面汇总结果。

如果是微任务,那么他会在同一个周期完成渲染

如果是宏任务,会在下一个周期完成渲染。这个时候有可能因为主进程被占用,比如说移动端某些 webview 被客户端卡住了。也有可能被某些 ajax 的回调呀之类的任务卡住。


回答:

因为微任务执行完成才会执行下一轮的宏任务,兼容性不支持时,那执行顺序就有可能落后于其他宏任务,这会造成顺序上的错误,如果代码对执行顺序有要求会发生意想不到的错误


回答:

还有一点可能是当前任务执行时修改了页面内某个节点信息,再下一次宏任务之前会先执行一次GUI渲染,页面内容变化了一次,下一次宏任务也修改了这个节点信息,那么也会再变化一次,所以用户视觉上会出现闪烁

以上是 vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响 的全部内容, 来源链接: utcz.com/p/937073.html

回到顶部