手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
Web前端之路
前端Vue专辑
Web 前端开发
带你弄清楚MVC、MVVM、MVP的区别
带你弄清楚MVC、MVVM、MVP的区别
作者:
倚剑闯天涯_
| 来源:发表于
2019-11-07 11:28 被阅读0次
MVC是Model-View-Controller的缩写,特点在于实现关注点分离,即应用程序中的数据模型与业务和展示逻辑解耦。它将应用程序划分为三个部分:
Model: 模型(用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法)
View: 视图(渲染页面)
Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)
MVC流程一共有两种: 一种是通过 View 接受指令,传递给 Controller,然后对模型进行修改或者查找底层数据,最后把改动渲染在视图上。 另一种是通过controller接受指令,传给View。
MVP是MVC改良模式,和MVC的相同之处在于:Controller/Presenter负责业务逻辑,Model管理数据,View负责显示只不过是将 Controller 改名为 Presenter,同时改变了通信方向。
M、V、P之间双向通信。View 与 Model 不通信,都通过 Presenter 传递。Presenter完全把Model和View进行了分离。
MVVM是Model-View-ViewModel的简写,主要目的是分离视图(View)和模型(Model)。
MVVM特点:
1) 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2)可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3)独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
4)可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过 Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。
MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。 唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。这样开发者就不用处理接收事件和View更新的工作,框架已经帮你做好了。
相关文章
网友评论
Web前端之路
前端Vue专辑
Web 前端开发
前端核心知识
本文标题:
带你弄清楚MVC、MVVM、MVP的区别
本文链接:
https://www.haomeiwen.com/subject/niwmbctx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
Web前端之路
前端Vue专辑
Web 前端开发
前端核心知识
摄影
故事
互联网
读书
旅行
热点阅读
如此地挂念你
2019-11-07
只用五步实现你的人生愿望 (读书笔记)
宋词赏读之136 幼安《菩萨蛮•书江西造口壁》
我是新手,我这样养花,它能成活开花吗?
阿里工程师太凶残了,竟把服务器泡在“水里”!
浣溪沙《甲戌十一日试饮川贝柠檬》
快乐的时候请使劲快乐
用温暖色调记录萌宠
化学实验基本方法(一)
Web前端之路
传统 Ajax 已死,Fetch 永生
安利一个14年撸的轮子 - Node.js 多版本管理器
聊聊前端面试那点事儿
怎样的页面更易读?
现在很多网站的字号都太小了
Web 开发者必上的 10 个网站
Web Workers 介绍
淘宝前端工程师:国内WEB前端开发十日谈
免费高清!N个无/少版权限制的大图特供网站
表单验证工具--formFilter
前端Vue专辑
Vue资料总汇
html5 上传本地图片处理各种问题
前端组件管理系统
《Vue随笔》 (一) 使用vue-cli搭建项目
将表单从jQuery转Vue框架实践总结
Vue.js实践(2):实现多条件筛选、搜索、排序及分页的表格功
Vue.js学习笔记(2)
通过todoMVC来学vue.js的使用
我从未见过如此简洁易懂的Vue教程
一起玩转Vue-resource
Web 前端开发
JS 文档生成工具:JSDoc 介绍
Web存储(Web Storage)介绍
Web Workers 介绍
JavaScript 正则表达式介绍
淘宝前端工程师:国内WEB前端开发十日谈
Gulp挑战Grunt,背后的哲学
超简单组织AngularJS模块
CSS hack总结
前端工程师需要明白的「像素」
如何提升 CSS 选择器性能
前端核心知识
Vue 进阶教程之:非父子组件通信方法(非Vuex)
前端必备 27
react-draft-wysiwyg富文本编辑器使用心得
模块导出的几种方式以及区别
Element UI中swich(开关)在表格中的使用
Gojs 快速入门
vue2.0父子组件以及非父子组件通信传参详解
element-ui:表单根据条件验证是否必填项
前端常用网站
Vue Cli 3.0中使用axios请求本地JSON数据
网友评论