MVC与MVVM与MVP

MVC

MVC就是model view contrloler,简单来说就是通过controller的控制去操作model层的数据,并且返回给view层展示
在这里插入图片描述

  • view 接受用户交互请求
  • view 把请求转给controller处理
  • controller操作model进行数据更新保护
  • 数据更新保护之后,model会通知view更新
  • view更新变化数据用户得到反馈

缺点:把业务逻辑和展示逻辑分离,模块化程度高。但由于View是强依赖特定的
Model的,所以View无法组件化,无法复用

MVVM

mvvm即model-View-view-viewmodel,将其中的view的状态和行为抽象化,让我们可以将UI和业务逻辑分开,mvvm的优点就是低耦合性、可重用性、独立开发。
在这里插入图片描述

  • view接受用户交互请求
  • view将请求转交给viewmodel
  • viewmodel操作吗model数据更新
  • model更新完数据后,通知viewmodel数据变化
  • viewmodel更新view数据

解决了MVP大量的手动View和Model同步的问题,提供双向绑定机制。提高
了代码的可维护性。对于大型的图形应用程序,视图状态较多,ViewModel
的构建和维护的成本都会比较高。

mvvm模式和mvc有些类似 但有一下不同

  • viewmodel替换了controller,在UI层之下
  • viewmodel向view暴露它所需要的数据和指令对象
  • viewmodel接收来自model的数据

响应原理

vue采用数据劫持结合发布者-订阅者模式的方式 ,通过Object.defineProperty劫持data属性的setter ,getter 在数据变动时发布消息给订阅者,触发相应的监听回调

MVP

和MVC模式一样,用户对View的操作都会从View交移给Presenter。
Presenter会执行相应的应用程序逻辑,并且对Model进行相应的操作;而这
时候Model执行完业务逻辑以后,也是通过观察者模式把自己变更的消息传
递出去,但是是传给Presenter而不是View。Presenter获取到Model变更的
消息以后,通过View提供的接口更新界面。
在这里插入图片描述
缺点:View不依赖Model,View可以进行组件化。但Model->View的手动同步逻
辑 麻烦,维护困难

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值