对于angular 中MVC 和 MVVM 的一些个人理解

来源:互联网 发布:mysql install db 编辑:程序博客网 时间:2024/04/29 10:50

首先我们先从字面上理解一下 MVC  :

M----> model 模型层(一般用于数据存储,存储一些业务逻辑),也就是我们说的数据模型。

V-----> view 视图层(界面),用来展示数据。

C-----> controller 控制层(管理),调度业务逻辑,联系数据和模板之间工作的逻辑代码。


MVC 是一种设计思想:

要了解这种思想,我们先来了解一下web 开发经历的几个阶段:

web 开发经服务器只读文件发送的时代, 然后经历了在服务器端拼接字符串生成html发送的时代,接着经历了分布式任务交给浏览器执行的时代,需求会不断的变化, 自然引入了模板, 也就有了分离的思想.
所以我们很自觉的将数据分离出来, 模板就是试图, 中间的逻辑代码就是控制器.

接下来我们可以这样理解MVC:

所谓的MVC就是 我们把网页代码按照视图 ,数据模型 和 控制器的方式进行分离;视图控制网页格式,数据模型控制数据,控制器就是联系数据和模板之间如何工作的逻辑代码。


MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。


view发送指令到controller--->controller完成逻辑之后,要求model改变状态--->model将新的数据发送到view,用户得到反馈。


MVC所有的通信都是单向的;


MVVM是MVC的变种和进阶,我们从字面上了解一下MVVM :

M----> model 模型层(一般用于数据存储,存储一些业务逻辑),也就是我们说的数据模型。

V-----> view 视图层(界面),用来展示数据。

VM--> ViewModel(视图模型) 也就是$scope。


在实际应用中,更多的是进行页面交互,而最后一次性向服务器提交处理(弱化了MVC中控制器的功能),增强了视图与模型的使用,因此将此称之为MVVM.


以前有人说过一句话:任何一个不能做的事情只要在中间加一层就可以实现了--我们在model 和 view 中间添加了一层ViewModel。


看图理解MVVM:

1 0