1、实现一个指令解析器 Compile 2、实现一个数据监听器 Observer 3、实现一个watcher去更新视图 4、实现一个proxy
Vue是采用数据劫持配合发布者-订阅者的方法,通过Object.definerProperty()来劫持各个属性的setter和getter,在数据变动时,发布消息给依赖收集器,去通知观察者,做出对应的回调函数,然后更新视图
MVVM作为绑定的入口,整合了Observer(劫持并监听各个属性),Compile和Watcher三者通过Observer监听model数据变化,通过Compile来解析编译模版指令,最终利用Watcher搭起了Observer和Compile之间的通信桥梁,达到数据变化=>视图更新;视图交互变化=》数据model变更的双向绑定效果。