MVC、MVP及MVVM

本文探讨了AngularJS的应用模式,分析了其是否属于MVC或MVVM,并通过实例说明了Model、View及ViewModel的具体作用。

经常听到这几个名词,但是网上的说法很多,千变万化。其实因为开发的领域不同,理解就不同,比如前端和后端在这个模式上的理解就有一些细微的区别。

关于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/选择恐惧症的福音!教你认清MVC,MVP和MVVM/

说说自己的理解吧,举一个例子就是android中listview的实现。
model:定义了基本类,即数据。
view:定义了界面。
view-model:就是将model适配到view中的adapter。

AngularJS是哪种模式呢?

菜鸟教程中顺其自然地将其归类于MVC。
AngularJS 应用组成如下:
-View(视图), 即 HTML。
-Model(模型), 当前视图中可用的数据。scope 是模型。
-Controller(控制器), 即 JavaScript 函数,可以添加或修改属性。

但是网上与不少人认为AngularJS偏向于MVVM模式
http://blog.youkuaiyun.com/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的过程就可以大致理解下它们的区别。

暂时不深究这些关系了,慢慢来,在实战中结合自己的理解。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FarmerJohn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值