vue 底层原理

双向绑定

首先我们要理解一下什么是MVVM模式?

M:数据层, v:视图层,数据与视图之间访问,以前都是自己写一大堆的代码实现数据层和视图层之间交互,比较繁琐,降低了开发效率,

现在数据层和视图层之间访问都直接通过vm,节省了开发时间,开发者只用关心业务方面的代码怎么写。

 

vue的双向绑定就是一个典型的mvvm模式,看一下他是怎么实现的吧

首先了解一下拦截器 ,所有对象的访问都会被拦截器拦截到,可以检测对象的变化,es6,vue3.0之前使用Object.defineProperty(),

vue3.0将会使用ES6标准出的新的拦截器Proxy,getset是其重要的两个属性,get(target, prop, receiver):拦截对象属性的访问,

set(target, prop, value, receiver):拦截对象属性的设置,最后返回一个布尔值。

搞不清楚原图是哪来的了

 

vue是采用订阅者模式

observer: 监听器的核心方法就是Object.defineProperty( )

compile:编译器,解析指令

watcher:观察者,是observercompile视图之间的桥梁

compile解析指令,初始化视图,添加订阅者到订阅器中,外面截取到数据与订阅器中的数据对比,有改变就通知订阅者改变然后更新视图,

 

posted @ 2020-09-25 18:00  学就完了  阅读(733)  评论(0)    收藏  举报