本篇文章的主要内容是讲述MVC与MVVM的区别,希望能对你有所帮助。
他们之间的区别主要是MVC中Controller(控制层)演变成了MVVM中的viewModel(双向数据绑定)。MVVM主要解决了MVC中大量的DOM操作带来的问题。MVVM中当和Model频繁发生变化,开发者需要主动更新到View。
一、MVC(Model-View-Controller)
MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)
mvc是一种设计模式:
-
模型(Model):负责数据管理和业务逻辑。模型表示应用程序中的数据结构以及对数据的操作。
-
视图(View):负责用户界面的展示和呈现,通常是用户可以看到和与之交互的部分。
-
控制器(Controller):负责接收用户的输入并作出响应,它处理用户与模型和视图之间的交互。控制器将用户的操作转发给模型进行处理,并将模型的结果传递给视图进行展示。
MVC 的优势在于它能够将应用程序的各个功能模块分离开来,提高代码的可维护性和可扩展性。通过明确定义了各个组件的职责,开发人员可以更好地组织和管理代码,同时也使得代码更容易被复用。
二、MVVM(Model-View-ViewModel)
MVVM是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。
-
模型(Model):与 MVC 中的模型相似,负责数据管理和业务逻辑。
-
视图(View):与 MVC 中的视图相似,负责用户界面的展示和呈现。
-
视图模型(ViewModel):是连接模型和视图之间的桥梁。视图模型负责获取和处理模型中的数据,并为视图提供数据绑定所需的属性和命令。它将模型中的数据转换为视图可以使用的形式,同时也接收来自视图的用户输入并将其转发给模型进行处理。
mvvm的优势:
1、mvc和mvvm都是一种设计思想: 主要就是mvc中Controller(控制层)演变成mvvm中的viewModel。 mvvm主要解决了mvc中大量DOM操作使页面渲染性能降低,加载速度变慢的问题 。
2、MVVM与MVC最大的区别就是:它实现了View和Model的自动同步:当Model的属性改变时,我们不用再自己手动操作Dom元素来改变View的显示,它会自动变化。
3、总的来说,MVVM 强调数据绑定和视图模型的概念,通过数据绑定实现了视图和视图模型之间的自动同步;而 MVC 则强调控制器作为视图和模型之间的中介,通过控制器进行通信。MVVM 在关注点分离方面更进一步,使得代码更加可维护和可测试。选择使用哪种架构模式取决于具体的应用需求和开发团队的偏好。
重点:MVVM 是一种软件架构模式。它是基于 MVC 的一种演变,将视图和数据绑定的方式更加紧密地结合在一起。
注意:MVVM并不是用ViewModel完全取代了Controller,mvvm只能算是mvc的升级版本,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务等还是应该放在Controller中实现。