MVVM 和MVC

124 阅读2分钟
  • VUE属于MVVM框架,REACT属于MVC框架。它们两者都是渐进式增强框架,其本质都是想让开发者放弃直接操作DOM,转而更加关注视图和数据。那么这两种框架有什么不同呢?

MVVM

  • mvvm是 view 视图层、model 数据层、viewModel 监听层的简称

  • VIEW 视图层:vue通过 template、JSX 模板,来创建结构,构建视图

  • MODEL 数据层:给视图提供所需的数据。其中包括有:

    • data\reactive\ref
    • props
    • computed
    • methods
    • ......
  • VIEWMODEL 监听层: vue的核心,通过监听数据层和视图层,让数据和视图互通有无,进而实现数据的 双向驱动。

    • 数据驱动视图: 修改数据层,视图层跟着重新渲染最新数据
    • 视图驱动数据: 一般监听表单元素更改,自动修改相关数据
  • 图例:

mvvm.png

MVC

  • MVC是: view 视图层、model 数据层、controller 控制层 的简称
  • VIEW 视图层: react 通过 JSX 语法,去构建视图
  • MODEL 数据层: 凡是在视图中动态处理的内容,都需要构建数据层
  • CONTROLLER 控制层: 根据业务需求,当视图层中的数据发生变化,要去修改对应的数据,进而让视图发生变化,从而让用户看到最新的视图展示。
  • 总结来说:当开发者想改变视图层中的信息,需要将model中对应的数据进行更改,react通过检测数据变化了,从而让视图按照最新的结构进行渲染;当用户在视图层触发了合成事件,那么需要去编写业务逻辑,然后由控制层去更改数据,进而控制视图重新渲染。
  • 图例

mvc.png

不同点

  • 数据驱动视图: 这个mvvm和mvc都是基本相似的。都是让数据去改变视图。
  • 视图驱动数据: vue通过双向绑定的原则已经实现了。mvc没有实现这一层的操作,需要开发者自己来进行编写。