vue 底层原理
双向绑定
首先我们要理解一下什么是MVVM模式?
M:数据层, v:视图层,数据与视图之间访问,以前都是自己写一大堆的代码实现数据层和视图层之间交互,比较繁琐,降低了开发效率,
现在数据层和视图层之间访问都直接通过vm,节省了开发时间,开发者只用关心业务方面的代码怎么写。
vue的双向绑定就是一个典型的mvvm模式,看一下他是怎么实现的吧
首先了解一下拦截器 ,所有对象的访问都会被拦截器拦截到,可以检测对象的变化,es6,vue3.0之前使用Object.defineProperty(),
vue3.0将会使用ES6标准出的新的拦截器Proxy,get和set是其重要的两个属性,get(target, prop, receiver):拦截对象属性的访问,
set(target, prop, value, receiver):拦截对象属性的设置,最后返回一个布尔值。
搞不清楚原图是哪来的了

vue是采用订阅者模式
observer: 监听器的核心方法就是Object.defineProperty( )
compile:编译器,解析指令
watcher:观察者,是observer与compile和视图之间的桥梁
compile解析指令,初始化视图,添加订阅者到订阅器中,外面截取到数据与订阅器中的数据对比,有改变就通知订阅者改变然后更新视图,

浙公网安备 33010602011771号