Appearance
梳理一下上述的流程
- 我们通过
Observer
类使数据变得可观测 - 用
Dep
类去存放依赖 - 用
Watcher
实例去作为每个数据的依赖
js
<div id="app">
<p>{{msg}}<p>
<div v-text="msg"><div>
<div>
我这个 p 标签和 div 标签都用了msg这个数据,所以这两个都是 msg 的依赖;
那在我们编译的时候会new Observer(data)
使数据变得可观测;然后new Watcher(vm,expOrFn,tempcb)
;new Watcher(vm,expOrFn,textcb)
;
然后触发数据的 getter 把这两个依赖添加 dep 实例的数组中,当用户进行更改值的时候;会触发数据的 setter ,然后遍历 dep 数组调用依赖的 update 方法去更新视图。