MVVM和MVC的区别详解(3大核心区别)

MVVM和MVC的区别详解(3大核心区别)-mikechen

MVVM和MVC经常都会被提及,但是MVVM和MVC的区别有哪些呢,很多并不清楚,下面详解3大MVVM和MVC的区别。

MVVM简介

MVVM是Model-View-ViewModel的简写,它本质上就是MVC 的改进版。

MVVM架构,如下图所示:

MVVM和MVC的区别详解(3大核心区别)-mikechen

MVVM把应用程序分成三个部分:

1.Model模型(简称M)

Model是应用的核心数据,主要作用为数据的接受作用。

2.View模型(简称V)

View就是UI层,用于用户到交道的。

3.ViewModel(简称VM)

VM: viewmodel 视图模型,是整个mvvm的核心,起着一个桥梁的作用,主要连接M与V。

 

MVC简介

MVC是把软件系统分为三个基本的部分,分别为:模型Model、视图View、和控制器Controller。

MVC框架模型,如下图所示:

MVVM和MVC的区别详解(3大核心区别)-mikechen

1.Model模型(简称M)

表示业务规则,主要作用为数据的接受和发送设定规则。

 

2、View视图(简称V)

是指用户看到并与之交互的界面,视图层,就是UI界面,用于跟用户进行交互,一般所有的JSPVelocityFreeMarker 、Thymeleaf等页面就是View层。

 

3、Controller控制器(简称C)

控制层Controller层的功能就是将Model和View层进行关联,控制器本身不输出任何东西和做任何处理,它只是接收请求并决定调用哪个模型构件去处理请求。

 

MVVM和MVC的区别

1.自动同步的区别

MVVM与MVC最大的区别就是,MVVM实现了View和Model的自动同步,当Model的属性改变时,我们不用再自己手动操作Dom元素来改变View的显示,它会自动变化。

 

2.单向双向的区别

MVC包括View视图层、Controller控制层、Model数据层,各部分之间的通信都是单向的,而MVVM各部分的通信是双向的。

MVVM引入双向绑定机制,帮助实现一些更新视图层和模型层的工作,让开发者可以更专注于业务逻辑,相比于之前的模式,可以使用更少的代码量完成更复杂的交互。

 

3.数据分离的区别

在MVC里View是可以直接访问Model的,所以View里会包含Model信息以及一些业务逻辑。

MVVM在概念上是真正将页面与数据逻辑分离的模式,它把数据绑定工作放到一个JS里去实现,而这个JS文件的主要功能是完成数据的绑定。

 

评论交流
    说说你的看法