vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue $nextTick实现

vue $nextTick实现原理深入详解

作者:光法V3

这篇文章主要介绍了vue $nextTick实现原理深入详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

简介

鉴于一些朋友想学习 vue2 源码,但一看到源码就头痛(比如在下...),这里本着能给别人讲会,自己就能学会的态度,想开一个专题,旨在用最简单的代码 让感兴趣的朋友了解一些源码的设计思路(重在思路)。当然受限于在下技术水平,若有歧义或不正确的地方还望大佬们及时指正。

这一节主要讲一下$nextTick 如何实现的

nextTick 的作用

我们看一下这一段代码

当我们进入页面后 根据双向绑定原理(当然我们还没讲,如果这个文章反应好后面会补上)的知识 num 每次执行++ 时,其 setter 方法都会执行一次,而每次执行 setter 时,都会触发 watcher 的更新 dom 方法,那执行下来,dom 就会被更新 10000 次,很明显这样就太低效了。

经过简单思考我们就可以想到,虽然 num 被更新了 10000 次,但我们实际只想在最后一次更新后,执行 dom 的更新,那就意味着想要提升性能,dom 更新就不能是同步的,而应该等每次代码执行完毕后,把所有收集到的 watcher 进行去重,如演示代码中,应该在每次执行 num 的 setter 后,先把触发的 watcher 存入队列,等代码执行完毕后,对收集到的 watcher 进行去重,这里就只保留最后一次的 watcher 更新 dom 即可。

nextTick 的简单实现

解析

以上就是vue $nextTick实现原理深入详解的详细内容,更多关于vue $nextTick实现的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文