vue源码解析一:Object的变化侦测

vue源码解析一:Object的变化侦测
Data通过Observer转换成了 getter/setter的形式来追踪变化。
(vue3之前是基于Object.defineProperty实现,vue3是基于proxy实现)。

当外界Watcher读取数据时候,会触发getter将所有相关的Watcher添加到Dep中。

当数据发生了变化时,会触发setter,从而向Dep中的依赖(Watcher)发送通知。

Watcher接收通知后,会向外界发送通知,变化通知到外界可能会发生视图更新,也有可能触发用户的某个回调函数(computed)。