vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响
vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响
回答:
因为宏任务有可能延时太长了。导致界面上的显示并不是你想要的。
举个例子。你执行了一堆计算,nextTick 里面汇总结果。
如果是微任务,那么他会在同一个周期完成渲染
如果是宏任务,会在下一个周期完成渲染。这个时候有可能因为主进程被占用,比如说移动端某些 webview 被客户端卡住了。也有可能被某些 ajax 的回调呀之类的任务卡住。
回答:
因为微任务执行完成才会执行下一轮的宏任务,兼容性不支持时,那执行顺序就有可能落后于其他宏任务,这会造成顺序上的错误,如果代码对执行顺序有要求会发生意想不到的错误
回答:
还有一点可能是当前任务执行时修改了页面内某个节点信息,再下一次宏任务之前会先执行一次GUI渲染,页面内容变化了一次,下一次宏任务也修改了这个节点信息,那么也会再变化一次,所以用户视觉上会出现闪烁
以上是 vue的nexttick中代码为什么要尽量在当前循环的微任务执行,兼容性不支持时在下一轮循环的宏任务执行,有什么不好影响 的全部内容, 来源链接: utcz.com/p/937073.html