一、MV* 模式
MVC模式
在 MVC 模式中,一个应用被分成三个部分,即模型(Model)、视图(View)、控制器(Controller)。 模型代表应用程序的数据以及用于访问控制和修改这些数据的业务规则。当模型发生改变时,它会通知视图,并为视图提供查询模型相关状态的能力。同时,它也为控制器提供访问封装的 模型内部的应用程序功能的能力。
视图用来组装模型的内容。它从模型获得数据并指定这些数据如何表现。当模型变化时,视图负责维护数据表现的一致性。视图同时将用户的请求通知控制器。
控制器定义了应用程序的行为。它负责对来自视图的用户请求进行解释,并把这些请求映射成相应的行为。这些行为由模型负责实现。模型所实现的行为包括处理业务和修改模型的状态。 根据用户请求和模型行为的结果,控制器选择一个视图作为用户请求的响应。
MVC 的思想:一句话描述就是 Controller 负责将 Model 的数据用 View 显示出来,换句话说就是在 Controller 里面把 Model 的数据赋值给 View。
MVP模式
MVP(Model-View-Presenter)是由经典的 MVC 模式演变而来,它们的基本思想有相通的地方:模型、视图、表示器(Presenter)负责逻辑的处理。 MVP 与 MVC 的最大区别是:在 MVP 中 View 并不直接使用 Model,它们之间的通信是通过 Presenter 进行的,所有的交互都发生在 Presenter 内部,而在 MVC 中 View 会 直接从 Model 中读取数据而不是通过 Controller。
MVVM模式
MVVM(Model-View-ViewModel) 是一种软件框架模式。MVVM 模式的核心是数据驱动,即 ViewModel, ViewModel 是 View 和 Model 的关系映射。ViewModel 是一个 值转换器(Value Converter), 负责转换 Model 中的数据对象,是数据变得更加易于管理和使用。在 MVVM 中 View 和 Model 是不可以直接进行通信的,它们之间存在着 ViewModel 这个中介,充当观察者的角色。
MVVM 模式最核心的特性就是数据双向绑定,ViewModel 向上与 View 进行双向数据绑定,向下与 Model 通过接口请求进行数据交互,起到承上启下的作用。
MVVM 模式的核心理念是通过声明式的数据绑定实现 View 的分离,完全解耦 View。
MVVM 与 MVC 最大的区别就是:它实现了 View 和 Model 的自动同步,也就是当 Model 的属性改变时,我们不用再自己手动操作 Dom 元素,来改变 View 的显示,而是改变属性后该属性对应 View 层显示会自动改变(对应Vue数据驱动的思想) 整体看来,MVVM 比 MVC 精简很多,不仅简化了业务与界面的依赖,还解决了数据频繁更新的问题,不用再用选择器操作 DOM 元素。因为在 MVVM 中,View 不知道 Model 的存在,Model 和 ViewModel 也观察不到 View,这种低耦合模式提高代码的可重用性