MVC和MVVM这两种设计模式的区别

一、MVC和MVVM是什么?

MVC是Model-View-Controller的简写,Model就是模型,对应后端数据,View就是视图对应用户界面,Controller就是控制器,对应页面的业务逻辑。
MVC的工作机制原理就是,用户操作会请求服务器路由,路由就会调用对应的控制器来处理,控制器就会获取后台数据,将结果返回给前端,进行页面渲染。


MVVM是Model-View-ViewModel的简写,它本质上就是MVC的改进版,ViewModel的存在目的是抽离Controller中提到的业务逻辑,集中在Model层或者单独的服务层中进行处理,以实现代码的分层和解耦。在MVVM中,ViewModel主要关注视图的数据绑定和视图逻辑,而在MVC中,Controller则更多地涉及业务逻辑的处理。

业务逻辑可以包括以下内容:

  1. 数据操作:对数据进行增删改查等操作,确保数据的完整性和一致性。
  2. 业务规则:定义和实现特定的业务规则,例如价格计算、权限控制、状态转换等。
  3. 流程控制:根据不同情况执行相应的流程和操作,保证系统按照预定流程运行。
  4. 验证逻辑:对用户输入数据进行验证,确保数据的有效性和合法性。
  5. 交互逻辑:处理用户界面与后端数据之间的交互逻辑,包括响应用户操作、触发事件等。

二、MVC和MVVM的区别

第一,MVC是单向的,而MVVM是双向的,并且是自动的,也就是数据发生变化自动同步视图,视图发生变化自动同步数据。
第二个,MVVM解决了 MVC 中大量的 DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验等问题。
第三个,在数据频繁更新的时候,MVVM采用了虚拟DOM,减少过度渲染,提高性能。 

三、对应的常见框架

MVC框架:

AngularJS:AngularJS是一个由Google开发的JavaScript前端框架,它采用了MVC设计模式,使得开发者可以更好地组织和管理前端代码。

MVVM框架:

Vue.js:Vue.js是一个流行的JavaScript框架,采用MVVM设计模式,提供了数据驱动的界面和组件化的开发方式,使得开发者能够更容易地构建交互性强、响应迅速的应用程序。

React.js:React.js虽然本身并非严格意义上的MVVM框架,但其采用了虚拟DOM以及单向数据流的概念,可以与一些状态管理库(如Redux)结合,实现与MVVM类似的数据流管理。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVVM框架和MVC框架是两种常见的软件架构模式,它们在应用程序的组织和设计上有一些区别MVC(Model-View-Controller)是一种经典的软件架构模式,它将应用程序分为三个主要部分: 1. 模型(Model):负责处理数据和业务逻辑。 2. 视图(View):负责展示数据给用户,并接收用户的输入。 3. 控制器(Controller):负责协调模型和视图之间的交互,处理用户的输入并更新模型和视图。 MVVM(Model-View-ViewModel)是一种相对较新的软件架构模式,它在MVC的基础上引入了一个新的组件: 1. 模型(Model):同样负责处理数据和业务逻辑。 2. 视图(View):负责展示数据给用户,并接收用户的输入。 3. 视图模型(ViewModel):作为视图和模型之间的中间层,负责将模型中的数据转换为视图可以使用的形式,并处理视图的状态和行为。 区别如下: 1. 数据绑定:MVVM框架通过数据绑定机制实现视图和视图模型之间的自动更新,而MVC框架通常需要手动更新视图。 2. 视图模型:MVVM引入了视图模型,将视图的状态和行为从视图中分离出来,使得视图更加专注于展示数据。 3. 测试性:由于视图模型的存在,MVVM框架更容易进行单元测试,因为视图模型可以独立于视图进行测试。 4. 可维护性:MVVM框架通过将业务逻辑从视图中分离出来,使得代码更加清晰和可维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值