我学习得过程是看源码视频的 我在网上看到一个版本记录的 我感觉他是跟我看的同一个视频 所以我就直接引用记录下来下次自己看了https://blog.csdn.net/refreeom/article/details/90440250
报错信息
源码里面的flushSchedulerQueue函数里面会有这个错误,这个错误的出发触发就是给某个属性添加watcher 然后在回调函数里面再进行改变,这样再改变边监听 永远都做不完
image.png
就会出现这种错误
在执行过程中会不断的由setter过来添加相同的user watcher 就会无限循环 ,vue中就是设置了最高99次 应该是同一个watcher执行大于99次就会报出上面错误!
我的大概理解就是这样:
操作改变值的时候会去触发setter ,然后就会把相应watcher添加进一个队列 ,再去执行下一个dep 触发setter 添加watcher 如果多个属于一个watcher 只会添加一次,如果判断里面有就不会添加了 最后所有的watcher添加结束之后 去执行这个队列 这个 队列如果是渲染watcher就会去执行getter函数就会执行_update去更新内容刷新页面 如果是user watcher 就会去执行程序员定义的callback函数!!










网友评论