vue
是采用数据劫持配合发布者-订阅模式的方式,通过Object.defineProperty()
来劫持各个属性的setter
和getter
,在数据变动时,发布消息给依赖收集器,去通知观察者,做出对应的回调函数,去更新视图.
MVVM
作为绑定的入口,整合Observer
,Compile
和Watcher
三者,通过Observer
来监听model
数据变化,通过Compile
来解析编译模板指令,最终利用Watcher
搭起Observer
,Compile
之间的通信桥梁,达到数据变化=>视图更新;视图交互变化=>数据model
变更的双向绑定效果。
tolerating / mvue Goto Github PK
View Code? Open in Web Editor NEW学习vue响应式原理的代码