Redux 核心概念

154 阅读2分钟

三大核心概念

  • action
  • reducer
  • store 在正式讲redux之前,先梳理一下前端对于数据处理的问题,我们先来了解一下MVC ~

MVC

它是一个出现在传统后端的 UI 解决方案,用于降低 UI 的复杂度,以及与UI关联的数据复杂度问题的方案。

  • 传统的服务端的 MVC 模式:

image.png

1. 服务端需要响应一个完整的HTML
2. 该HTML中包含页面所需要的全部数据
3. 浏览器仅仅负责渲染整个HTML源代码

这种方式被称为: 服务端渲染,组装页面由后端完成,数据和视图统一由服务端组装,然后一起发送给页面

缺点

1、后端UI与数据复杂度剧增,一个页面又要处理UI显示,又要考虑数据渲染。

MVC模式解决了以上的问题

image.png

Controller: 处理请求,组装这次请求需要的数据

Model:需要用于UI渲染的数据模型

View:视图,用于将模型组装到界面中

前端MVC模式的困难

1、前端的 controller是面向用户,用户的操作是未知的,所以前端的controller比服务端要复杂得多

2、对于组件化的框架(VUE、React),它们使用的是单向数据流。若需要共享数据,则必须将数据提升到顶层组件,然后数据再一层一层传递,极其繁琐。 虽然可以使用上下文来提供共享数据,但对数据的操作难以监控,容易导致调试错误的困难,以及数据还原的困难。

前端需要一个独立的解决方案

flex

facebook 提出的数据解决方案, 首次引入了 action的概念。

  • action:是一个普通的对象,用于描述要干什么,action是触发数据变为的唯一条件
  • store:表示数据仓库, 用于存储共享数据,根据action的描述来改变仓库中的数据。

Redux

在 Flux 基础上引入了 reducer概念 reducer:处理器,根据action的描述,来判断怎么对数据进行处理,返回的新数据会被仓库重新保存下来

数据处理流程

image.png