【Vue】mvc,mvp,mvvm 的区别



总结:

  • MVC : view 视图层依靠 model 来进行更新渲染,当数据发生改变时。第一步: 通知 controller 进行更新,然后第二步 controller 再通知 model 进行更新。最后 model 才将 view 更新 , 这样大量的逻辑以及更新操作,都需要在controller 操作,则产生了大量代码,不利于维护,且 model 发生变更时很难判断是由 model 直接更改的,还是view用户操作更改的,这样使得数据流很混乱,且相互依赖耦合度高。
  • MVP: view 与 model 所有的操作都需要经过 Presenter 处理后才能进行,所有通知 view 与 model 数据变化的操作都是在 Presenter 进行,这样就完全分离了两端的联系,解决了耦合度问题,但是p端内容就很多了。
  • MVVM: 利用 viewmodel 替代 presenter, 同样也是所有的数据以及视图变动都是在vm上处理进行的,但是 vm 中利用 diff 算法,虚拟DOM等方式实现了一套数据响应式机制,自动响应 model 中的数据变化,同时实现了一套更新策略。自动将数据变化转换为视图更新,减少了大量的代码,极大的提高了效率,且利于维护。
相关推荐
索西引擎2 小时前
【React】JSX:JavaScript 语法扩展的本质、编译机制与表达能力分析
前端·javascript·react.js
国科安芯10 小时前
航天电子模拟前端三大支柱:精密运放、高速运放与电压监控的协同设计方法——ASL8522S/ASL622S/ASL706S技术解析
前端·单片机·嵌入式硬件·fpga开发·架构·安全性测试
神明不懂浪漫10 小时前
【第四章】CSS(二)——文本外观属性与复合选择器
前端·css·经验分享·笔记
kyriewen11 小时前
别再用AI debug了——这5种bug越修越烂
前端·javascript·ai编程
星释12 小时前
鸿蒙智能体开发实战:39.鸿蒙壁纸大师 - 前端卡片显示与交互优化
前端·华为·交互·harmonyos·鸿蒙·火山引擎
顾昂_12 小时前
内存泄漏排查和 Chrome DevTools 使用教程
前端·javascript·面试
IT_陈寒13 小时前
Java线程池这个坑我算是踩明白了
前端·人工智能·后端
315356691314 小时前
Superpowers:GPT-5.6 时代下的流程毒瘤
前端·后端
清秋14 小时前
全网最全 ECMAScript 攻略( 更新至 ES2026)
前端·javascript·编程语言
Cao_Ron15 小时前
用 SVG image symbol 画 ECharts graph 圆形节点
前端