采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,在响应式这章中给data添加get,每一个响应的属性都有一个dep,然后dep会把当前的渲染watcher加入数组中。在一个组件中多个响应数据的watcher应该是同一个实例对象吧。所以在后续的set中,如果一次修改多个数据,那么就会触发多次的dep通知。但是他们的watcher是同一个实例,在遍历watcherqueue依次执行每一个watcher.run()不就重复了吗,这个我有点不太理解
默认情况下这些都是异步 watcher,会先执行 queueWatcher 把 watcher 添加到一个队列中,然后在 nextTick 后执行一次 watcher.run。在添加的过程中,会做判断,并不会重复添加相同的 watcher。
嗯,看到了,会通过一个has对象保存以加入到队列的watcher队列,执行完又重置了。上次没看那么仔细。
登录后可查看更多问答,登录/注册
全方位讲解 Vue.js 源码,进阶高级工程师
3.1k 4
1.6k 20
1.3k 14
1.3k 12
2.2k 12