目录标题
- 一、什么是MVVM?
- 二、MVC是什么?
- 三、MVVM和MVC的区别?
- 四、什么是MVP?
一、什么是MVVM?
MVVM是 Model-View-ViewModel的缩写,即模型-视图-视图模型。MVVM 是一种设计思想。
- 模型(Model):代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。数据保存—存放着各种数据,有的是固定写死的,大多数是从后端返回的数据
- 视图 (View):代表UI 组件,它负责将数据模型转化成UI 展现出来,用户界面,也就是DOM
- 视图模型(View-Model):监听数据模型的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和Model的对象,连接Model和View。
MVVM的流程如下:
二、MVC是什么?
MVC 通过分离 Model、View 和 Controller 的方式来组织代码结构。其中 View 负责页面的显示逻辑,Model 负责存储页面的业务数据,以及对相应数据的操作。并且 View 和 Model 应用了观察者模式,当Model 层发生改变的时候它会通知有关 View 层更新页面。Controller 层是View 层和 Model 层的纽带,它主要负责用户与应用的响应操作,当用户与页面产生交与的时候,Controller 中的事件触发器就开始工作了,通过调用 Model 层,来完成对 Model 的修改然后 Model 层再去通知 View 层更新。
三、MVVM和MVC的区别?
- 都是一种设计思想
- MVC后台用的多,MVC是Model-view-Controller的简写,即模型-视图-控制器。
- MVC的目的就是将M和V的代码分离
- MVC是单向通信,也就是View和Model,必须通过controller来承上启下。
- MVVM实现了View和Model的自动同步,当Model的属性改变时,不用再自己手动操作DOM元素,提高了页面渲染性能。
四、什么是MVP?
MVP 模式与 MVC 唯一不同的在于 Presenter 和 Controller。
在 MVC 模式中使用观察者模式来实现当 Model 层数据发生变化的时候,通知 View 层的更新。这样 View 层和 Model 层糖合在一起,当项目逻辑变得复杂的时候,可能会造成代码的混乱,并且可能会对代码的复用性造成一些问题。
MVP 的模式通过使用 Presenter 来实现对 View 层和 Model 层的解。MVC 中的Controller 只知道 Model 的接口,因此它没有办法控制 View 层的更新,MVP 模式中,View 层的接口暴露给了 Presenter 因此可以在 Presenter 中将 Model 的变化和 View 的变化绑定在-起,以此来实现 View 和 Model 的同步更新。这样就实现了对 View 和 Model 的解耦Presenter 还包含了其他的响应逻辑