• Vue响应式原理模拟
      • 整体分析
        • Vue基本结构
        • 打印Vue实例观察
        • 整体结构
          • Vue —> Observer(数据劫持) —> Dep(发布者) —> Watcher(观察者)
          • Vue —> Compiler(解析指令) —> Watcher(观察者)
    1. - Vue data中的成员注入到Vue实例,并且把data中的成员转成getter/setter
    2. - Observer 能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知Dep
    • Vue
      • 功能
        • 负责接收初始化的参数(选项)
        • 负责把data中的属性注入到Vue实例,转换成getter/setter
        • 负责调用observer监听data中所有属性的变化
        • 负责调用compiler解析指令/差值表达式
    • Observer
      • 功能
        • 负责把data选项中的属性转换成响应式数据
        • data中的某个属性也是对象,把该属性转换成响应式数据
        • 数据变化发送通知
    • Compiler
      • 功能
        • 负责编译模板,解析指令/差值表达式
        • 负责页面的首次渲染
        • 当数据变化后重新渲染视图
    • Dep
      • 功能
        • 收集依赖,添加观察者(watcher)
        • 通知所有观察者
    • Watcher
      • 功能
        • 当数据变化触发依赖,dep通知所有的Watcher实例更新视图
        • 自身实例化的时候往dep对象中添加自己
    • 总结-整体流程:
      • 图示:
      • 响应式原理总结图.png