【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 中的数据变化,同时实现了一套更新策略。自动将数据变化转换为视图更新,减少了大量的代码,极大的提高了效率,且利于维护。
相关推荐
C_心欲无痕1 小时前
前端实现水印的两种方式:SVG 与 Canvas
前端·安全·水印
尾善爱看海4 小时前
不常用的浏览器 API —— Web Speech
前端
美酒没故事°4 小时前
vue3拖拽+粘贴的综合上传器
前端·javascript·typescript
jingling5555 小时前
css进阶 | 实现罐子中的水流搅拌效果
前端·css
zhengxianyi5157 小时前
只需3句让Vue3 打包部署后通过修改配置文件修改全局变量——实时生效
vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化
悟能不能悟7 小时前
前端上载文件时,上载多个文件,但是一个一个调用接口,怎么实现
前端
可问春风_ren7 小时前
前端文件上传详细解析
前端·ecmascript·reactjs·js
羊小猪~~8 小时前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3
晚风资源组9 小时前
CSS文字和图片在容器内垂直居中的简单方法
前端·css·css3
Miketutu10 小时前
Flutter学习 - 组件通信与网络请求Dio
开发语言·前端·javascript