微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

前端angular 之MVVM

MVVM:Model-View-ViewModel

MVP(Model-View-Presenter)模式与WPF结合的应用方式时 发展演变过来的一种新型架构框架使用的是数据绑定基础架构,View绑定到ViewModel,然后执行一些命令在向它请求一个动作。而反过来,ViewModel跟Model通讯,告诉它更新来响应UI。


MVP 里的M 其实和MVC里的M是一个,都是封装了核心数据、逻辑和功能的计算关系的模型,而V是视图(窗体),P就是封装了窗体中的所有操作、响应用户的输入输出、事件等,与MVC里的C差不多,区别是MVC是系统级架构的,而MVP是用在某个特定页面上的,也就是说MVP的灵活性要远远大于MVC,实现起来也极为简单。


MVC

用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。

view:视图、controller:业务逻辑、model:数据保存;


MVP(Model-View-Presenter)

MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。

.NET程序员熟知的ASP.NET webform、winform基于事件驱动的开发技术就是使用的MVP模式。控件组成的页面充当View,实体数据库操作充当Model,而View和Model之间的控件数据绑定操作则属于Presenter。控件事件的处理可以通过自定义的IView接口实现,而View和IView都将对Presenter负责。


MVVM

MV-CM,思想的完全变革。


它是将“数据模型数据双向绑定”的思想作为核心(View的变动,自动反映在 viewmodel,反之亦然),在View和Model之间没有联系,通过viewmodel进行交互,而且Model和viewmodel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。

这方面典型的应用有.NET的WPF,js框架Knockout、AngularJS、Angular等。


http://www.cnblogs.com/guwei4037/p/5591183.html

http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

http://www.jianshu.com/p/f4faa720f00d

原文地址:https://www.jb51.cc/angularjs/145991.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐