MVC与MVVM简介

作者: 8e29c3f7ea8a | 来源:发表于2018-06-02 01:26 被阅读3次
i1.jpg

MVC

MVC 即 Model-View-Controller 的缩写,就是 模型-视图-控制器 , 也就是说一个标准的Web 应用程式是由这三部分组成的:

  • View 用来把数据以某种方式呈现给用户。

  • Model 其实就是数据。

  • Controller 接收并处理来自用户的请求,并将 Model 返回给用户。

MVC的一般流程是这样的:View(界面)触发事件-->Controller(业务)处理了业务,然后触发了数据更新-->更新了Model的数据-->Model(带着数据)回到了View-->View更新数据
MVC.png

如图MVC指:

M:Model层
V:View视图层
C:Controller层(router.js Controller)

但随着前端日益复杂,MVC的不足:

  • 1、开发者在代码中大量调用相同的 DOM API, 处理繁琐 ,操作冗余,使得代码难以维护。

  • 2、大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。

  • 3、当 Model 频繁发生变化,开发者需要主动更新到View ;当用户的操作导致 Model 发生变化,开发者同样需要将变化的数据同步到Model 中,这样的工作不仅繁琐,而且很难维护复杂多变的数据状态。

MVVM

视图层的分层开发思想

MVVM 由 Model,View,ViewModel 三部分构成,Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。

MVVM.png

在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

MVVM框架

  • angularjs
    google出品,思想来自flex,IoC, 脏检测,自定义标签,受限于绑定数量,一般不能超过2000个,入门容易上手难,大量避不开的概念
  • react
    facebook出品,带来virtual dom的革命性概念,受限于视图的规模
  • vue
    使用Object.defineProperties实现同步,实现精致

相关文章

  • MVC与MVVM简介

    MVC MVC 即 Model-View-Controller 的缩写,就是 模型-视图-控制器 , 也就是说一个...

  • mvc、mvp与mvvm

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

  • 【IOS开发高级系列】MVVM—ReactiveCocoa架构设

    1 MVVM简介 1.1 MVC介绍 MVC: Massive View Controller. Alot of ...

  • MVVM in Swift

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

  • 架构模式:MVC与MVVM

    本文探讨如下几个问题: 什么是MVC 什么是MVVM MVC与MVVM对架构属性的影响 MVC实例SpringMV...

  • 框架模式之 MVVM

    简介 MVVM 是 Model-View-ViewModel 的简写。它本质上就是 MVC 的改进版。MVVM 就...

  • MVVM和MVC有什么区别

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

  • MVC, MVVM, MVP简介

    前言 本篇文章介绍一下在 iOS 开发中常用的架构模式。好的架构应该具有哪些特征呢?1、每个对象都拥有一个特定、明...

  • vue指令大全

    vue 是什么——简介型的javascript框架 特点:mvvm m=mvc module 模型...

  • 2018-05-05 一

    一、简介 是一个mvvm框架(库),和angular类似,小巧易上手mvc:mvp、mvvm、mv*、mvx MV...

网友评论

    本文标题:MVC与MVVM简介

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