MVC和MVVM设计模式的区别

1,MVVM

MVVM 对应 3个组成部分,Model(模型)、View(视图) 和 ViewModel(视图模型)。

  • View:用户在屏幕上看到的结构、布局和外观,也就是UI;
  • Model :是数据和逻辑;
  • ViewModel 视图模型:是把两者建立通信的桥梁;

结构图如下:
在这里插入图片描述

在 MVVM 框架下,View 和 Model 之间没有直接的联系,而是通过 ViewModel 进行交互。
View 和 ViewModel之间以及 Model 和 ViewModel 之间的交互都是双向的,因此 view 数据的变化会同步到 Model 中;
而 Model 数据的变化也会立即反映到 View 上。可以说它们两者是实时更新的,互相影响。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而 View 和 Model 之间的同步工作完全是自动的,因此开发者只需要关注业务逻辑,不需要手动操作 DOM,也不需要关注数据状态的同步问题,这些都由 MVVM 统一管理;

【优点】
数据源和视图实现了双向绑定,很好的做到了数据的一致性,一个viewmodel层可以给多个view层共用。

为什么说Vue框架没有完全遵循MVVM

MVVM只能数据驱动视图,视图更改数据,而不能通过其他方式操作数据。
因为Vue中添加了一个属性ref,通过ref可以拿到DOM对象,用ref直接去操作视图。这一点上,违背了MVVM思想。

2,MVC
MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范;

  • Model(模型)- 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
  • View(视图)- 视图代表模型包含的数据的可视化。
  • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
    在这里插入图片描述

【优点】
耦合性低,方便维护,可以利于分工协作 重用性高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值