MVC、MVP及MVVM
来源:互联网 发布:apache 进程池 编辑:程序博客网 时间:2024/06/06 02:51
经常听到这几个名词,但是网上的说法很多,千变万化。其实因为开发的领域不同,理解就不同,比如前端和后端在这个模式上的理解就有一些细微的区别。
关于MVVM,这篇文章讲的比较靠谱。
https://github.com/kuitos/kuitos.github.io/issues/35
关于这三者的一些理解,阮一峰老师的文章讲的也还算靠谱,但也不能全信。
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
此外,某人结合android的理解谈了谈:
http://zjutkz.net/2016/04/13/%E9%80%89%E6%8B%A9%E6%81%90%E6%83%A7%E7%97%87%E7%9A%84%E7%A6%8F%E9%9F%B3%EF%BC%81%E6%95%99%E4%BD%A0%E8%AE%A4%E6%B8%85MVC%EF%BC%8CMVP%E5%92%8CMVVM/
说说自己的理解吧,举一个例子就是android中listview的实现。
model:定义了基本类,即数据。
view:定义了界面。
view-model:就是将model适配到view中的adapter。
AngularJS是哪种模式呢?
菜鸟教程中顺其自然地将其归类于MVC。
AngularJS 应用组成如下:
-View(视图), 即 HTML。
-Model(模型), 当前视图中可用的数据。scope 是模型。
-Controller(控制器), 即 JavaScript 函数,可以添加或修改属性。
但是网上与不少人认为AngularJS偏向于MVVM模式
http://blog.csdn.net/cz_sky/article/details/76064227
包括阮一峰老师:
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
以及廖雪峰老师:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143233918656129f4ad3ac29e4f728dc72b5d2368215a000
并且,网上一致认为,双向绑定是MVVM框架最大的作用。
当然,最终官网给出的解释是,AngularJS为MVW,W指whatever。毕竟严格意义上AngularJS不属于任何一种。
总结:AngularJS、Vue等框架一般可认为是MVVM模式,但是严格意义上,咬文嚼字的话,就不好说了。
阮一峰老师博文下面的评论,有很多讲的比较好,值得一看。
另外,廖雪峰老师的实战案例中从MVC转型到MVVM的过程就可以大致理解下它们的区别。
暂时不深究这些关系了,慢慢来,在实战中结合自己的理解。
- MVC,MVP及MVVM
- MVC、MVP及MVVM
- MVC与MVP及MVVM
- mvc,mvp,mvvm比较及区别(1)
- mvc,mvp,mvvm比较及区别(2)
- 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, MVP与MVVM
- MVC、MVP、MVVM
- MVC,MVP 和 MVVM
- 初次接触C语言如何入门
- 学习笔记8
- Android组件通信
- Java set 基本使用方法
- Angular4学习笔记(九)- 生命周期钩子简介
- MVC、MVP及MVVM
- ArcGIS 10.2 AE开发几个配置问题
- 使用wininet实现网络资源的下载
- 网站favicon图标查看、制作及使用方法总结
- 双网络(内外网)同步漂移的Active-Active双活模式
- txt读取多项式进行加减乘除还有求值~
- SpringMVC_1
- C++使用变量作为数组长度
- I2C工作原理