关于无限循环更新

来源:4-8 派发更新(下)

MeSKiL

2019-10-31

老师这里有个问题我没想明白。
这里watcher里判断出无限循环了并给开发者报错。
但是我如果在update的回调里面更新了数据的话,浏览器还是会崩掉的。为啥Vue不在update里也做一个类似的限制呢。
是不好实现嘛

写回答

1回答

ustbhuangyi

2019-10-31

update 钩子的执行在循环后了这个时候 circular 已经 reset 了无法检测到。这个和 Vue 对于 watcher 回调执行机制和 update 钩子执行时机有关。目前的设计是先跑完所有的 watcher.run()再去执行所有的 updated 钩子里。
你在 update 里更新数据会无限 nextTick 执行 update 钩子逻辑,肯定会造成浏览器的假死的。

0
1
MeSKiL
非常感谢!
2019-10-31
共1条回复

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

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

4984 学习 · 1037 问题

查看课程