fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

说说vue中computed的实现原理

Open habc0807 opened this issue 4 years ago • 1 comments

habc0807 avatar Jul 24 '20 10:07 habc0807

我们知道vue的响应式基于发布订阅模式,依赖的收集追踪,一个属性被调用的函数,都放到订阅数组里,每依赖函数都是一个Watcher,computed中依赖该属性,那么Dep里就有一个惰性的Watcher,为什么成为惰性的?是因为,在取值操作的时候会返回上一次计算结果。如果依赖值更新了,就会notify通知Watcher重新计算。

换种说法,computed中的属性,通过代理,代理到vue的data上,data上的属性都被依赖监听,当computed属性依赖的data改变时,会触发通知订阅者更新,于是computed的属性就重新计算了。

habc0807 avatar Aug 06 '20 07:08 habc0807