关于渲染watcher
来源:4-10 检测变化的注意事项

zhaobao1830
2021-10-30
老师您好,在响应式这章中给data添加get,每一个响应的属性都有一个dep,然后dep会把当前的渲染watcher加入数组中。在一个组件中多个响应数据的watcher应该是同一个实例对象吧。所以在后续的set中,如果一次修改多个数据,那么就会触发多次的dep通知。但是他们的watcher是同一个实例,在遍历watcherqueue依次执行每一个watcher.run()不就重复了吗,这个我有点不太理解
写回答
1回答
-
ustbhuangyi
2021-10-31
默认情况下这些都是异步 watcher,会先执行 queueWatcher 把 watcher 添加到一个队列中,然后在 nextTick 后执行一次 watcher.run。在添加的过程中,会做判断,并不会重复添加相同的 watcher。
012021-11-02
相似问题