Vue3组件异步更新和nextTick运行机制源码分析


这篇文章主要介绍了Vue3组件异步更新和nextTick运行机制源码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3组件异步更新和nextTick运行机制源码分析文章都会有所收获,下面我们一起来看看吧。我们应该都知道或者听说过组件的更新是异步的,对于nextTick我们也知道它是利用promise将传入的回调函数放入微免费云主机域名任务队列中,在函数更新完以后执行,那么既然都是异步更新,nextTick是怎么保证回调会在组件更新后执行,其插入队列的时机又是什么时候?带着这些问题我们去源码中寻找答案。先回顾一下组件更新的effect:在响应式数据发生改变触发effect执行的时候会执行() => queueJob(update)调度器,所以我们要去看queueJob干了什么queueJob主要是将scheduler添加到queue队列,然后执行queueFlush当所有的同步scheduler执行完毕后,就会去处理微任务队列的任务,就会执行flushJobs回调函数组件内当修改响应式数据后,组件更新函数会被放到queue中,然后注册一个微任务,这个微任务负责执行queue中的所有job,所以这时就算我们同步修改多次/多个响应式数据,同一个组件的更新函数只会被放入一次到queue中,等到同步操作结束后才会去执行注册的微任务,组件更新函数才会被执行,组件才会被更新。vue3中nextTick的实现非常简单:这里的关键就是currentFlushPromise,如果你足够细心就会发现currentFlushPromise其实在queueFlush中就被赋值了,它正是把执行组件更新函数的任务放入微队列中的promise,所以在此我们拿到currentFlushPromise正好把nextTick接收到的函数回调放到微队列中flushJobs的后面,等到flushJobs执行完成后组件也已经更新完毕,此时正是我们希望去执行nextTick回调的时机!关于“Vue3组件异步更新和nextTick运行机制源码分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Vue3组件异步更新和nextTick运行机制源码分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: php怎么过滤违禁词

这篇文章主要讲解了“php怎么过滤违禁词”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么过滤违禁词”吧! 什么是违禁词?违禁词是指在网站或应用程序中,用户不能使用的词语或敏感词汇。这些词汇可能包括淫秽的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/06 18:37
下一篇 06/06 18:39

相关推荐