理解MVC模式和MVVM
来源:互联网 发布:淘宝赚钱 编辑:程序博客网 时间:2024/06/04 18:27
MVC和MVVM的数据绑定原理的不同
脏值检查: angular.js 是通过脏值检测的方式比对数据是否有变更,来决定是否更新视图,最简单的方式就是通过 setInterval()
定时轮询检测数据变动,当然Google不会这么low,angular只有在指定的事件触发时进入脏值检测,大致如下:
DOM事件,譬如用户输入文本,点击按钮等。( ng-click )
XHR响应事件 ( $http )
浏览器Location变更事件 ( $location )
Timer事件( $timeout , $interval )
执行 $digest() 或 $apply()
数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()
来劫持各个属性的setter
,getter
,在数据变动时发布消息给订阅者,触发相应的监听回调。
已经了解到vue是通过数据劫持的方式来做数据绑定的,其中最核心的方法便是通过Object.defineProperty()
来实现对属性的劫持,达到监听数据变动的目的,无疑这个方法是本文中最重要、最基础的内容之一,如果不熟悉defineProperty,猛戳这里
整理了一下,要实现mvvm的双向绑定,就必须要实现以下几点:
1、实现一个数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者
2、实现一个指令解析器Compile,对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数
3、实现一个Watcher,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图
4、mvvm入口函数,整合以上三者
- 理解MVC模式和MVVM
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 对MVC、MVVM开发模式的理解和总结
- MVC与MVVM设计模式理解
- 理解MVC、MVVM、RAC开发模式
- MVC设计模式和MVVM设计模式的理解及对比
- 对MVVM和MVC的理解
- iOS 我理解的MVC和MVVM
- reactivecocoa框架 、MVC 和 MVVM 的理解
- 基于LinkIt one的Arduino编程学习-按键操作
- Java集合源码学习(二)ArrayList分析
- 文章标题
- 只在本视图隐藏nav bar
- 未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依
- 理解MVC模式和MVVM
- Hadoop搭建Hive异常处理
- java中的反转和换行相关问题
- 安装mysql的主从架构
- RelativeLayout的onMeasure源码分析
- C++简单实现GC和内存池
- Android 中 View移动总结:ViewDragHelper学习及用法详解
- 寻找合伙人 一起写书
- CSS:如何清除a标签之间的默认留白间距