wsqww / devNote

开发笔记
3 stars 3 forks source link

vue 双向绑定 #33

Open wsqww opened 3 years ago

wsqww commented 3 years ago

vue数据双向绑定是通过数据劫持结合发布者-订阅者模式

  1. Observer 是一个数据监听器,核心方法是利用 Object.defineProperty() 通过递归的方式对所有属性都添加 setter、getter 方法进行监听;
  2. 订阅者 Watcher 需要在初始化的时候将自己添加到订阅器 Dep 中,我们已经知道监听器 Observer 是在 get 时执行的 Watcher 操作,所以只需要在 Watcher 初始化的时候触发对应的 get 函数去添加对应的订阅者操作即可;
  3. compile 解析模板指令,并替换模板数据,初始化视图。将模板指定对应的节点绑定对应的更新函数,初始化相应的订阅器;