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

Posted wangxinyufarly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于什么是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

   

以上是关于关于什么是MVVM?几种双向数据绑定的方式的主要内容,如果未能解决你的问题,请参考以下文章

vue2.x双向数据绑定原理

理解VUE2双向数据绑定原理和实现

Vue之九数据劫持实现MVVM的数据双向绑定

浅谈Vue的双向绑定

angular双向绑定

Vue 注意事项 模板语法 单双向绑定 语法格式 MVVM框架 Object.defineProperty和数据代理操作