Vue MVC与MVVM的区别与联系

本文探讨了MVC(模型-视图-控制器)与MVVM(模型-视图-视图模型)两种软件架构模式的区别。MVC通过控制器协调模型与视图,而MVVM则利用视图模型作为桥梁,实现低耦合与可重用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC和MVVM理解

MVC与MVVM看似差不多,其实差着事儿呢,就好像这是两栋别墅,别墅表面上看起来都那样子,谁也不比谁多几个烟囱什么的,但是最大的区别就是别墅里面的“管家”不一样。管事的人身份不同,做事的方式跟流程也不一样。
 
古语云:你走你的路,我走我的路。你走路用脚,我走路用车。甭管咋样走,走就是了。

1 MVC

  • MVC即模型、视图、控制器(Model View Controller)
  • 简单来说就是通过controller的控制去操作model层的数据,并且返回给view层展示。controller在这里执行的的就是别墅里面的“管家”的作用。
  • View 接受用户交互请求
  • View 将请求转交给Controller处理
  • Controller 操作Model进行数据更新保存
  • 数据更新保存之后,Model会通知View更新
  • View 更新变化数据使用户得到反馈

2 MVVM

  • MVVM即模型、视图、视图模型(Model-View-ViewModel),ViewModel是MVVM这栋别墅的“管家”。
  • 将其中的 View 的状态和行为抽象化,让我们可以将UI和业务逻辑分开。
  • MVVM的优点是低耦合可重用性独立开发

mvvm.jpg

  • View 接收用户交互请求
  • View 将请求转交给ViewModel
  • ViewModel 操作Model数据更新
  • Model 更新完数据,通知ViewModel数据发生变化
  • ViewModel 更新View数据

3 不同点

MVVM模式和MVC有些类似,但有以下不同

  • ViewModel 替换了 Controller,在UI层之下
  • ViewModel 向 View 暴露它所需要的数据和指令对象
  • ViewModel 接收来自 Model 的数据

概括起来,MVVM是由MVC发展而来,通过在Model之上而在View之下增加一个非视觉的组件将来自Model的数据映射到View中。

再简单化的扩展性理解便是:在某种程度上讲,MVVM是MVC的徒弟,师从于MVC,师徒二人都具备差不多的技术,在某些特定情况下,徒弟比师傅身体强壮一些,做事更快更高效一些,此所谓年轻气力盛,年轻即意味着更多的可能,进步的空间更大、眼光更新颖、更长远一点。

人民有信仰,民族就有希望,国家就有力量。青年一代力气最盛,希望最大。

我愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃流的话。能做事的做事,能发声的发声。有一分热,发一分光。就令萤火一般,也可以在黑暗里发一点光,不必等候炬火,此后如竟没有炬火,我便是唯一的光,倘若有了炬火,出了太阳,我们自然心悦诚服的消失,不但毫无不平,而且还要随喜赞美这炬火或太阳;因为它照了人类,连我都在内。------鲁迅

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silly夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值