mvvm和mvc的区别是什么?

本篇文章的主要内容是讲述MVC与MVVM的区别,希望能对你有所帮助。

 他们之间的区别主要是MVC中Controller(控制层)演变成了MVVM中的viewModel(双向数据绑定)。MVVM主要解决了MVC中大量的DOM操作带来的问题。MVVM中当和Model频繁发生变化,开发者需要主动更新到View。

一、MVC(Model-View-Controller)

MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)

mvc是一种设计模式:

  1. 模型(Model):负责数据管理和业务逻辑。模型表示应用程序中的数据结构以及对数据的操作。

  2. 视图(View):负责用户界面的展示和呈现,通常是用户可以看到和与之交互的部分。

  3. 控制器(Controller):负责接收用户的输入并作出响应,它处理用户与模型和视图之间的交互。控制器将用户的操作转发给模型进行处理,并将模型的结果传递给视图进行展示。

MVC 的优势在于它能够将应用程序的各个功能模块分离开来,提高代码的可维护性和可扩展性。通过明确定义了各个组件的职责,开发人员可以更好地组织和管理代码,同时也使得代码更容易被复用。

二、MVVM(Model-View-ViewModel)

MVVM是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。

  1. 模型(Model):与 MVC 中的模型相似,负责数据管理和业务逻辑。

  2. 视图(View):与 MVC 中的视图相似,负责用户界面的展示和呈现。

  3. 视图模型(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中实现

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值