面试取经:阐述一下你所理解的MVVM响应式原理

142 阅读1分钟

vue是采用数据劫持配合发布者-订阅者模式的方式,通过 Object.defineProperty()劫持各个属性的setter和getter,在数据变动时,发布消息给依赖收集器,去通知观察者,做出对应的回调函数,去更新视图。

MVVM作为绑定的入口,整合Observer、Compile和Watcher三者,通过Observer监听model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer、Compile之间的通信桥梁,达到数据变化=>视图更新视图的交互的变化=>数据model变更的双向绑定效果。