美文网首页
MVC 与 MVVM 的区别

MVC 与 MVVM 的区别

作者: 页面仔小杨 | 来源:发表于2019-03-12 17:11 被阅读0次

一、MVC

V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。

M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据

二、MVVM

MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。

M指的是后端传递的数据。V指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。

它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。实现的方式是:DOM 事件监听。这两个方向都实现的,我们称之为数据的双向绑定。总结:在MVVM的框架下视图和模型是不能直接通信的。它们通过ViewModel来通信,ViewModel通常要实现一个observer观察者,当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知到对应的视图做自动更新,而当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改动,这实际上就实现了数据的双向绑定。并且MVVM中的View 和 ViewModel可以互相通信。MVVM流程图如下:

三、区别

1.MVC中M层和V层可以直接打交道,导致这两层耦合度高

2.MVC中因为所有逻辑都写在C层,导致C层特别臃肿

3.MVVM在概念上是真正将页面与数据逻辑分离的模式,它把数据绑定工作放到一个JS里去实现,而这个JS文件的主要功能是完成数据的绑定,即把model绑定到UI的元素上

相关文章

  • MVVM in Swift

    参考文章: MVVM in Swift MVC 与MVVM的区别在MVC下ViewController中常常会包含...

  • MVVM和MVC有什么区别

    MVVM与MVC的区别有:1、mvvm各部分的通信是双向的,而mvc各部分通信是单向的;2、mvvm是真正将页面与...

  • iOS-面试题6-架构

    目录: MVC-Apple MVC-变种 MVP MVVM 分层设计 架构与设计模式的区别 一. MVC-Appl...

  • vue的mvvm原理解析及手写一个

    # 手写vue的mvvm实现原理 ## 1:mvc和mvvm的区别? MVC:modal-view-control...

  • mvc、mvp与mvvm

    1 mvc缺点 2 mvp a 简介 b 与mvc的区别 c 优缺点 d 使用建议 3 MVVM ...

  • 2019-10-31

    手写vue的mvvm实现原理 1:mvc和mvvm的区别? MVC:modal-view-controller,比...

  • iOS面试题

    1.MVC、MVP、MVVM的区别?MVC: MVVM: MVP: 2.自动布局有哪些?(1)Autolayout...

  • Vue

    Node.js(后端)中的MVC与前端中的MVVM之间的区别 MVC是后端的分层开发概念,MVVM是前端视图层的概...

  • 3.mvc和mvvm的区别和使用

    1.mvc和mvvm的由来 2.mvvm的概念 3.mvc和mvvm的区别 4.MVVM的实践 1.model层的...

  • 第二章、MVVM模式原理

    一、MVVM和MVC模式的区别 讲到MVVM模式和MVC模式的区别,网上一大堆讲解的,我只简单讲解一下,MVC模式...

网友评论

      本文标题:MVC 与 MVVM 的区别

      本文链接:https://www.haomeiwen.com/subject/pjsnpqtx.html