浅谈网页设计模式:MVC/MVP/MVVM模式区别及联系
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
随着前端事业的快速发展,网页的设计模式里面出现了MVVM
模式,在这种新的模式下,react
、vue
们得到了快速发展。那么,这和传统的MVC
模式,有什么区别呢?这就是苏南大叔在本文中要探讨的主要问题。
没有啥测试环境,大家就默默的听苏南大叔说说就行了。唯一需要声明的是:本文中苏南大叔描述的概念,可能和网上流传的概念不同。这里仅供参考,欢迎留言,提出您不同的观点。
MVC
和MVP
模式对比
传统的网站,基本上都是MVC
模式的。
m
是model
,理解为数据库(中的表),或者说通过对数据表进行组合加工处理形成的虚拟model
。v
指的是view
,苏南大叔的理解就是传递给终端用户的html
了。c
指的是controller
,用来联系m
和v
的,把m
里面的数据传递给v
,由v
负责展示。
而MVP
和MVC
的基本概念是一致的。
- 它的
p
是指的是:Presenter
,基本上等同于controller
。 - 但是,两者肯定是区别的。苏南大叔的理解是这样的:
MVP
中的v
不可以访问m
,而MVC
中的v
可以访问m
(写那些网页模版的时候,大家自行体会)。 - 所以,
p
和c
的区别就是:专职和兼职的区别,数据访问及逻辑处理,纯粹都放在c
里面的话,c
就变成了p
。
MVC
和MVVM
模式对比
这里说说MVVM
模式,这些都是伴随着js
的不断强大而伴生出的新概念。所以,苏南大叔认为:MVVM
是附生在前端网页的这个层次上的,也就是MVC
和MVP
中的V
,MVVM
是从V
的概念的再次衍生和发展。
MVVM
对V
的概念,再次进行了分化,分为:m
、v
、vm
。
m
还是model
,但是这里并不是代表在后端的数据库了,这里表示的是前端的js
对象object
。v
,这个基本上可以继承原来的v
的概念,指的是html
代码,但是!由于各种MVVM
框架的发展,这些html
的写法发生了较大的变化。战场从传统的html
的dom
衍生到由js
虚拟出的dom
里面。vm
,苏南大叔就理解为react
、vue
、angular
这些框架的作用了。他们对dom
和object
进行双向绑定,让传统的jquery
几乎彻底失业。
相关链接
总结
本文中的几种网页设计的理解,是苏南大叔多年编程经验的理解,和网上的大多数论点有所冲突。当然,如果您是在考试的话,请使用你书本上的概念解释。本文就是个博客文章,阐述苏南大叔自己的观点和理解的。请不要盲目的认为这里苏南大叔的观点是就是正确的哦。特别是:苏南大叔的观点和主流观点有不一致的前提下。哈哈~
如果您支持苏南大叔的文章,欢迎查看下面的链接:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。