关于什么是MVVM?几种双向数据绑定的方式

1.什么是MVVM?

   M:(Model,模型层) 数据模型 数据是后端ajax获取到的

   V :(View,视图层)需要把数据展示到页面的html中 

   VM:(ViewModel,视图模型 V与M连接的桥梁) View和Model是通过ViewModel来进行关联的

   View改变了 通过DomListener 注册事件 视图改变了 数据就改变了

   数据变化了 视图根据DataBindings发生改变(也就是数据劫持)

   MVVM实现了数据双向绑定 (数据发生改变以后  VM会监测到数据的改变) 自动的通知我们的页面

   进行修改 视图发生改变以后 同样的数据也会发生改变

   Vue做得事情就是视图变 数据变 数据变 视图变

2.几种双向数据绑定的方式?

1.发布-订阅者模式(backbone.js) 最早的mvvm框架

一般通过pub、sub的方式来实现数据和视图的绑定 使用起来比较麻烦

2.脏值检查(angular.js)

用定时器轮训检测数据是否发生改变 性能低

3.(vue用什么方式实现的数据绑定?)

 数据劫持 Object.defineProperty给对象的属性增加修饰符来劫持各个属性的setter getter(获取值和设置值的时候 你都能知道

然后就可以修改页面的视图了) 此外还结合了发布订阅模式 把所有订阅 指定 统一做更新的处理

IE8以下不支持 Object.defineProperty这个属性的 所以vue只兼容到ie9

   

相关推荐