【React】04.MVC模式和MVVM模式

React是Web前端框架

1、目前市面上比较主流的前端框架

  • React
  • Angular(NG框架)
  • Vue

主流的思想:

不在直接去操作DOM,而是改为“数据驱动思想”

操作DOM思想:

  • 操作DOM比较消耗性能[主要原因就是,可能会导致DOM重排(回流)/重绘]
  • 操作起来也相对麻烦一些

数据驱动思想:

  • 我们不会在直接操作DOM
  • 我们去操作数据[当我们修改了数据,框架会按照相关的数据,让页面重新渲染]
  • 框架底层实现视图的渲染,也是基于操作DOM完成的。
    构建了一套虚拟DOm -> 真实DOM 的渲染体系
    有效避免了DOm的重排/重绘
  • 开发效率更高、最后的性能也相对较好

stackoverflow

操作DOM的demo

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <title>操作DOM的demo</title>
  </head>
  <body>
    <span id="textBox">0</span>
    <br />
    <button id="submit">累加</button>

    <script>
      // 想操作谁,先获取谁
      let textBox = document.querySelector("#textBox"),
        submit = document.querySelector("#submit");

      // 事件绑定
      let num = 0;
      submit.addEventListener("click", function () {
        num++;
        textBox.innerHTML = num;
      });
    </script>
  </body>
</html>

在这里插入图片描述

2、React框架采用的是MVC体系;Vue框架采用的是MVVM体系

MVC:modal数据层 + view视图层 + controller控制层

  • 按照专业的语法去构建试图(页面):React中是基于jsx语法来构建视图的
  • 构建数据层:但凡在视图中,需要“动态”处理的(获取需要变化的,不论是样式还是内容),我们都要有对应的数据模型
  • 控制层:当我们在视图中(或者根据业务需求)进行某些操作的时候,都是去修改相关的数据,然后React框架会按照最新的数据,重新渲染视图,以此让用户看到最新的效果。

单项数据驱动:数据驱动视图的渲染!!
视图中的表单内容改变,想要修改数据,需要开发者自己去写代码实现
“单向驱动”

MVVM:modal数据层 + view视图层 + viewModel数据/试图监听层

  • 数据驱动视图的渲染:修改数据,视图会跟着更新
  • 试图驱动数据的更改:监听页面中表单元素内容改变,自动去修改相关的数据
    “双向驱动”
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MVC 是模型(Model),视图(View)和控制器(Controller)的缩写,是一种软件架构模式,用于将应用程序分离成三个核心部分:模型,视图和控制器。MVP 是模型(Model),视图(View)和处理者(Presenter)的缩写,是一种软件架构模式,它将 UI 和业务逻辑分离开来,使 Model 不暴露在 View 中,视图只负责表现,而 Presenter 负责处理用户交互。MVVM 是模型(Model),视图(View)和视图模型(ViewModel)的缩写,是一种架构模式,旨在将视图和模型的逻辑分离开来,以便视图只负责表现,而 ViewModel 负责模型和视图之间的通信。 ### 回答2: MVC(Model-View-Controller)是一种软件架构模式,它将应用程序分为三个不同的部分:模型、视图和控制器。模型负责业务逻辑和数据存储,视图负责用户界面的展示,控制器负责协调模型和视图之间的交互。 MVP(Model-View-Presenter)是一种针对用户界面设计的架构模式,它在MVC的基础上进行了改良。MVP模式将视图和模型解耦,引入了Presenter层来负责协调模型和视图之间的交互,并处理用户的输入事件。这样可以提高代码的可测试性和可维护性。 MVVM(Model-View-ViewModel)是一种基于数据绑定的架构模式,它将应用程序分为三个主要部分:模型、视图和视图模型。模型负责业务逻辑和数据存储,视图负责用户界面的展示,视图模型负责将模型和视图之间的数据进行双向的绑定。通过数据绑定,当模型的数据发生变化时,视图模型会自动更新视图,用户对视图的操作也会自动同步到模型中。 这三种架构模式都旨在提高代码的可重用性、可维护性和可测试性。MVC模式是最早出现的,传统的Web开发框架如ASP.NET MVC、Spring MVC等都采用了这种模式。MVP模式MVC模式相比更加灵活,可以更好地应对复杂的用户界面需求。而MVVM模式则在前端开发中较为常见,它通过数据绑定简化了视图与模型之间的交互,降低了代码的复杂性。 总的来说,不同的架构模式适用于不同的场景和需求,开发人员需要根据具体情况选择适合的架构模式来组织代码。 ### 回答3: MVC(模型-视图-控制器),MVP(模型-视图-展示器)和MVVM(模型-视图-视图模型)都是软件开发中常用的架构模式MVC模式是一种将应用程序分成三个主要组件的模式。模型(Model)是应用程序的数据和业务逻辑。视图(View)是数据的可视化呈现。控制器(Controller)负责接收用户的输入并更新模型和视图。MVC的核心思想是分离关注点,使开发者能够更好地组织和维护代码。MVC模式在传统的Web开发中广泛应用,例如将网页的界面(视图)与后端的数据处理(模型和控制器)分离。 MVP模式是一种基于MVC的演化,在MVC模式中视图和模型之间紧密耦合,造成了一些问题,如测试困难和可维护性差。MVP模式通过引入展示器(Presenter)解决了这些问题。视图只负责UI的展示,而展示器负责处理用户输入和更新视图。模型不直接与视图交互,而是通过展示器来进行沟通。这种模式使得视图和模型的分离更加清晰,提高了代码的可测试性和可维护性。MVP模式在Android开发中被广泛采用。 MVVM模式是一种基于MVC和MVP的演化,其核心思想是使用视图模型(ViewModel)来进一步解耦视图和数据模型。视图模型是视图和模型之间的连接器,它负责处理视图的展示逻辑并维护与视图相关的状态和数据。视图模型通过数据绑定机制将模型和视图自动同步,实现了双向数据绑定。这种模式使得界面的开发更加简洁和高效,并且提高了代码的可维护性和可测试性。MVVM模式前端开发中比较流行,特别是在使用框架如Angular和React的情况下。 总之,MVC、MVP和MVVM都是常用的软件架构模式,它们分别通过分离关注点、引入展示器或视图模型来改善代码结构和维护性,使开发者能够更好地组织和开发应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值