vlambda博客
学习文章列表

react和vue两种典型架构模式的区分

react和vue两种典型架构模式的区分

大家都知道mvc模式、mvp模式、mvvm模式、但是相对比vue和react这两种前端典型框架架构模式是什么呐、今天和大家分享一下。

三种模式的区别:


MVC 是世界上最低级、最原始的 UI 模式;MVC 就是在 V 上绑定 M,然后 C 负责处理界面整个提交请求,并且一遍遍地刷新整个 V。这种机制。所以 MVC 的标志是“初级、单向绑定、一遍遍刷新UI”。


MVP 则是深入到程序的“骨髓”,UI设计模板与 MVP 事件定义绑定,让程序员可以捕获这么一个组件的丰富的事件,然后在事件处理过程中又去从控件树上去直接访问其它所有控件,直接修改其属性。开发的精力很大程度上用在学习各种控件的内部机制上,学习曲线陡峭。所以MVP的标志是“复杂、事件驱动、精细到每一个控件层次”。

MVVM 则是在 MVP 上的改进,它隔离了控件操作层,UI 模板上各种控件直接跟 VM 层的属性绑定,使得 VM 属性改变时自动更新 UI 控件,反之 UI 控件的值改变时又自动更新 VM 属性。这样编程的方式就不是去一大堆控件事件处理,而是写少量的 VM 属性更改行为代码。开发精力绝大部分都放在业务与UI的绑定上,而并不需要研究控件内部机制。

重点核心:

       React使用的是MVC模式。所有MVC框架都是单向数据流的。
特色:

  • 使用Virtual DOM

  • 提供了响应式(Reactive) 和组件化 (Composable) 的视图组件。

  • 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。

注:react 实际上是一个“伪MVC”,它其实是 MVP 的,但是它深知 MVP 模式的弊病,它明明是基于组件并且绑定了组件的 change 事件的,但是它有使用虚拟DOM的方式来一遍遍刷新UI控件(并且为了解决性能问题,有各种负责和诡异的避免全局刷新UI树的反模式操作)。所以虽然 React 自称为 MVC模式,但是实际上它是 MVP 的变种。

 MVVM框架:

      VUE的介绍Vue就是基于MVVM模式实现的一套框架;

      1、mvvm是 Model-View-ViewModel 的缩写,即 模型-视图-视图模型。

      2、 Model:数据模型,后端传递的数据。(data,props,computed等部分)
      3、View:代表 UI 组件,它负责将数据模型转化成 UI 展现出来。(template部分)
      4、ViewModel:是一个同步View 和 Model的对象。MVVM模式的核心,它是连接Model和View的桥梁。

MVVM优点:

      在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过 ViewModel 进行交互,
    Model 和 ViewModel 之间的交互是双向的,因此 View 数据的变化会同步到 Model 中,而 Model 数据的变化也会立即反应到View 上。
       ViewModel 通过双向数据绑定把 View 和 Model 连接了起来,而 View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。