安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

没有后端基础如何理解MVCMVP和MVVM,可以以JavaS

4月20日 眸中星投稿
  谢谢邀请!
  什么是MVC以及它的作用?
  MVC是一种分层架构模式,M代表数据模型以及相关数据处理逻辑,V就是用户界面,C代表控制器(可以认为它是逻辑处理路由)!通常的情景是用户操作了可视界面(V),用户的信息传递给了控制器,控制器把用户指令分发给对应的数据层(M),最终数据层处理好数据后,将最新的数据反映到界面上!MVC的作用是将以前杂乱的代码分层解耦,使得代码具有更好的维护性!
  如何理解MVC?
  在后端的知识体系中,MVC更容易理解!不过在前端中,我们有nodejs可以做后端,我们就拿nodejs举例!
  我们把用户操作的界面看作View层,用户操作浏览器后,请求来到服务端,路由将请求交给Controller,Controller调用对应的服务处理数据,数据处理后返回响应!这里我将Router和Controller放在一起,Service和db放在了一起!这样代码调理清晰,对代码增删改查都会非常方便!
  如果仅仅是浏览器端的逻辑,也可以采用MVC架构,例如Backbone。js,方式如下:
  1、dom是View层
  2、对dom的事件绑定,可以看作Controller
  3、将原始数据和数据的操作封装成数据模型(对象)
  4、Controller调用不同的数据模型处理数据
  5、数据处理完成后,采用观察者模式及时更新View
  什么是MVP、MVVM?
  其实MVP和MVVM是MVC的变种,Model和View没有直接的联系了,而是通过中间的那一层进行桥接!目前市场比较流行MVVM模式,比如VUE、REACT等!
  总结
  不管是哪一种架构模式,其实都是为了方便我们开发和维护,个人认为没有严格的标准去限定有多少层以及层与层的联系,只要适用于业务就是好的架构模式!
  MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。
  MVC、MVP、MVVM三者特点
  MVC(同步通信为主):Model、View、Controller
  MVP(异步通信为主):Model、View、Presenter
  MVVM(异步通信为主):Model、View、ViewModel
  什么是MVC模式?
  MVC模式代表ModelViewController(模型视图控制器)模式。这种模式用于应用程序的分层开发。Model(模型)模型代表一个存取数据的对象或JAVAPOJO。它也可以带有逻辑,在数据变化时更新控制器。View(视图)视图代表模型包含的数据的可视化。Controller(控制器)控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。MVC是比较直观的架构模式,用户操作View(负责接收用户的输入操作)Controller(业务逻辑处理)Model(数据持久化)View(将结果反馈给View)。
  什么是MVP模式?
  MVP全称是ModelViewPresenter,是模型(model)视图(view)呈现器(presenter)的缩写。
  MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到ViewModel之间通信的完全隔离。Model:业务逻辑和数据处理(数据库存储操作,网络数据请求,复杂算法,耗时操作)。View:对应于Activity,负责View的绘制以及与用户交互。Presenter:负责完成View于Model间的交互(有一点还需要注意,presenter是双向绑定的关系,因此,在设计的时候就要注意接口和抽象的使用,尽可能的降低代码的耦合度,这也是mvp的宗旨)。
  什么是MVVM模式?
  MVVM(ModelViewViewModel)是一种软件设计模式,由微软WPF(用于替代WinForm,以前就是用这个技术开发桌面应用程序的)和Silverlight(类似于JavaApplet,简单点说就是在浏览器上运行WPF)的架构师KenCooper和TedPeters开发,是一种简化用户界面的事件驱动编程方式。由JohnGossman(同样也是WPF和Sliverlight的架构师)与2005年在他的博客上发表。
  MVVM源自于经典的MVC(ModelViewController)模式。MVVM的核心是ViewModel层,负责转换Model中的数据对象来让数据变得更容易管理和使用。
  如果说MVP是对MVC的进一步改进,那么MVVM则是思想的完全变革。它是将数据模型数据双向绑定的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。
  MVVM已经相当成熟了,主要运用但不仅仅在网络应用程序开发中。当下流行的MVVM框架有Vue。js,AnfularJS
  为什么要使用MVVM?
  MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大好处低耦合:视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。可复用:你可以把一些视图逻辑放在一个ViewModel里面,让很多View重用这段视图逻辑。独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewMode),设计人员可以专注于页面设计。可测试:界面素来是比较难以测试的,而现在测试可以针对ViewModel来写
  我王者局局mvp
  不需要后端基础来理解mvcmvpmvvm。
  mvc就是模型试图控制器,模型类似数据schema,就是这个要渲染视图的数据结构;v就是模板,用于将数据格式化展示;c就是控制器,控制使用哪个模板,并将model与视图做映射,这样模型的数据就绘制到视图了。一般在controller和model中间会加一个service来处理下业务。
  mvp跟mvc挺像,所不同是p是presenter,用来替代c,这种模式下,不再是model直接映射到模板,而是通过presenter来把model数据拿到,然后由presenter这个代理器来将数据写入到视图,这样视图与model进行了解绑,开发变得更灵活,presenter还可以操控数据。
  mvvm就是从模型数据直接到视图再从视图到模型。这样去掉了v或者p,不再需要一层控制器或者代理器。这样的好处就是,针对数据模型编程,改变了数据也就是改变了视图,由框架来把视图和数据的联动搞定,开发者更多关心是数据逻辑开发,而复杂的dom操作,事件处理交给了框架。这样大型开发会变得容易些。m到v就是要监听到数据的变动,比如defineProperty、proxy、不停数据检测等方式来获知数据发生了改变,然后将改变后的数据更新到视图上;v到m就是监听dom的更新事件,凡事dom更新则将对应model更新。
  其实实际工作中仍然会三者有些结合或借鉴。目前大多采用mvvm框架,但是模型仍然是需要独立的,而且也需要service来进行承接,视图与模型的对应也可以视图对应的代理器完成。
  有时候我们为了实现松耦合和代码的易维护性,尽量将数据和视图以及连接器等解藕,这时候你觉得哪种实践最合适就怎么做,也不必拘泥于某个固定的形式。
  汗啊。JS不就是MVC中的C吗?
  这么一说不就很容易理解了吧?
  HTML是M
  CSS是V
  M:有什么
  V:什么样
  C:怎么样
  mvc和mvp基本是一个东西,区别只在于view是否直接操纵model,mvvm则是双向绑定,view可以直接修改model,反过来model的改变直接反应在view上。从js来看,node的express就是mvc,而angular则是mvvm
投诉 评论 转载

大量用户被踢出MIUI内测,雷军微博被米粉刷屏!场面尴尬MIUI是国内最早的定制安卓系统之一,从2010年到今天已经发布12个大版本的更新,MIUI12。5增强版也在近日正式向首批机型推送。雷军在早前透露,全新的MIUI13会在年底……全面出色才是vivoS12影像性能外观各有千秋说到vivo,大家都会想到其各个系列优秀的影像能力,其中的vivoS系列,更是备受欢迎,每一代会都在影像方面不断提升,前置人像更是一直引领行业。其中vivoS10带来了自然人像……空调维修收费标准有些朋友经常咨询格力售后关于空调维修方面的收费问题:空调加氟多少钱,空调移机价格‘空调维修有上门费吗’等等相关售后的法规已经出现,在一定程度上对家电类产品的售后维修有所规……智能家居HomeAssistant网关安装篇自从买了树莓派,一直都当NAS来使用,最近,心血来潮,想折腾一下智能家居。首先,当然想到了HomeAssistant。话不多说,先装起来再说。安装Docker1更新树莓派……iOS15。4更新啦!期待已久的戴口罩解锁来了,App支持1IOS更新啦!IT之家3月15日消息,苹果今日凌晨发布了iOSiPadOS15。4正式版更新。支持iPhone12及后续机型。iOS15。4带来了大家期待已久的戴口……统计普法互联网遇上民法典丨在线服务避坑指南随着移动互联网不断普及,消费者在选择时该如何避坑?本期《民法典通解通读》为您解读互联网遇上《民法典》之在线服务避坑指南。案例1:出境航班取消为何平台不承担违约责任?……15分钟实现过去10小时放疗,人工智能抗癌硬核武器亮相四叶草精准治疗癌症,第四届进博会展馆里大型硬核武器齐齐上阵。连续四次参加进博会的瓦里安医疗、医科达等知名企业,携数个全球首发产品及解决方案亮相进博会8。1馆,这些硬核武器讲述数字化转……你的密码安全吗?区块链技术之哈希今天是我们的区块链底层技术分享第一期哈希。我们先不说哈希是什么,在你的生活中是不是存在以下的情况:你在一个网站注册了账号,输了密码、身份证号、银行卡号,有没有担心过自己的……半导体技术再突破台湾研发侧向磊晶扭转结构获专利来源:中国新闻网中新网5月11日电据台湾《联合报》报道,台湾成功大学(以下简称成大)物理系副教授杨展其与前沿量子科技研究中心特聘教授陈宜君、陈则铭团队,提出并实证调控材料……谈谈敏捷开发SCRUMDevOps及持续集成1。hr敏捷开发1。1什么是敏捷?敏捷是用于描述软件开发方法的术语,强调增量交付、团队协作、持续规划和持续学习。敏捷一词源于2001年《敏捷宣言》。宣言旨在确立指导软件开……助力跨境电商出海腾讯云推出轻量化解决方案一种轻松的上云方式,正成为众多海外跨境商家的新选择。2月16日,记者了解到,腾讯云轻量应用服务器Lighthouse针对跨境电商推出了轻量化解决方案,有效助力相应场景。……没有后端基础如何理解MVCMVP和MVVM,可以以JavaS谢谢邀请!什么是MVC以及它的作用?MVC是一种分层架构模式,M代表数据模型以及相关数据处理逻辑,V就是用户界面,C代表控制器(可以认为它是逻辑处理路由)!通常的情……
三星宣布斥资170亿美元在得州建芯片厂床头神器联想天骄氛围灯音箱9月京东手机销量国产百元机打败iPhone13,华为小米跌出美国坚持用毫米波,GSMA拉上华为发出警告频谱不一致危及5G尼安德特人或坐拥生存天赋莫让软件成软肋上市七个月,降价1500,iPhone12为何不保值?预算充足的话,买手机建议一步到位,这四款手机堪称最高规格第十四节SpringBoot使用JdbcTemplate访问高精度IP地址定位接口的使用场景科学家首次证实动物也能感知心跳手机号码支付,你开通了吗?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利