watcher更新问题

来源:5-4 计算属性 VS 侦听属性(4)

rick_and_

2020-03-30

老师你好,假如在第一次nextTick时候,queue队列中有一个user watcher,有一个是a页面的render wather。然后user watcher先执行更新,这时候user watcher的run函数里面会执行用户自定义的回调函数,假如在这个回调函数里更改了一个值导致又要更新b页面的render watcher,由于这个render watcher不在这次tick的queue队列里面,那么queue watcher的时候会把这个render watcher push进queue队列是吗? 如果是这样那这个b页面render watcher是应该在下一个nextTick再更新是吗?也就是不和user watcher 和 a的render watcher在一次更新?

写回答

1回答

ustbhuangyi

2020-03-30

//img1.sycdn.imooc.com/szimg/5e81b845096d7e0222281118.jpg
如果在 flushing 的过程中又往队列里添加,那么它就会插入到这个队列中,还是在遍历这个 queue 的过程中执行更新,不会放到 nextTick 中。

0
1
rick_and_
哦我懂了 这个flush是个全局的 只要flushing过就为ture了
2020-03-30
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4986 学习 · 1038 问题

查看课程