Skip to content
On this page

梳理一下上述的流程

  1. 我们通过Observer类使数据变得可观测
  2. Dep类去存放依赖
  3. 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 方法去更新视图。

Released under the MIT License.