一、MVVM简介
MVVM是Model-View-ViewModel的简写。即是模型-视图-视图模型。
MVVM架构模式是一种软件设计模式,它将应用程序分为三个部分:模型(Model)、视图(View)和视图模型(ViewModel)。该模式的目的是将用户界面(UI)逻辑与业务逻辑分离,以便开发人员可以更轻松地管理和修改应用程序。
在MVVM模式中,模型表示应用程序中的数据和业务逻辑,视图表示用户界面,视图模型则是连接模型和视图的桥梁。视图模型从模型获取数据并将其转换为视图可以理解的形式,然后将其传递给视图。视图模型还接收来自视图的用户输入,并将其传递给模型进行处理。视图模型可以实现命令、验证、异常处理等功能,以便在应用程序中实现更加完整和健壮的业务逻辑。
MVVM模式的优点包括:提高代码的可维护性、可测试性和可重用性;隔离复杂的UI逻辑;改善团队合作(开发人员可以专注于他们的领域)等。
二、MVVM结构
-
model模型
- 指的是后端传过来的数据。
-
view视图
- 指的是所有看到的页面,可以理解为将数据以某种方式呈现给用户。
-
ViewModel
- 指的是视图模型,他是连接view和model的桥梁。
从上面的图片可以大致看到,有两个不同的方向。
-
模型->视图
解析:将后端数据转换为前端的页面。实现的方式是数据绑定。 -
视图->模型
解析:将前端页面转换为后端数据的实现方式:叫做Dom数据监听。
存在两个方向都能实现的情况下,叫做数据的双向绑定。
三、MVC
MVVM是Model-View-ViewModel的简写。本质上就是MVC的改进版。MVC
是Model View Controller
的简写, 即模型-视图-控制器。M和V指的意思和MVVM中的M和V意思一样。C即Controller
指的是页面业务逻辑。使用MVC的目的就是将M和V的代码分离,从而使同一个程序可以使用不同的表现形式。
- View 传送指令到 Controller
- Controller 完成业务逻辑后,要求 Model 改变状态
- Model 将新的数据发送到 View,用户得到反馈
可以看到其所有的通信都是单向的。view和model是直接进行通信的。view和model之间随着业务量的不断庞大,会出现和蜘蛛网一样难以处理的关系,随着前端应用的复杂程度越来越复杂。所以必须要改进。
原文链接
四、MVP
MVP是 Model View Presenter 的简写。它与MVC的不同是改变了通信方向
MVVM是MVC的改进版,立足于MVP并进一步的改进文章来源:https://www.toymoban.com/news/detail-682086.html
文章来源地址https://www.toymoban.com/news/detail-682086.html
- 各部分之间的通信,都是双向的。
- View 与 Model 不发生联系,都通过 Presenter 传递。
- View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
五、MVVM的优势与存在的问题
- 优点
- 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
- 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
- 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
- 可测试。界面素来是比较难于测试的,测试可以针对ViewModel来写。
- 缺点
- 有人认为对于简单的UI,MVVM可能过于庞大。
- 在View和ViewModel之间没有提供紧密的耦合
- 当具有复杂的数据绑定时,调试过程将很复杂。
到了这里,关于MVVM架构模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!