Redux 入门(一):什么是 Redux?

阅读时长 4 分钟读完

如果你是前端开发者,那么你一定听说过 Redux。Redux 是当前流行的一种 JavaScript 状态管理库,它提供了一种可预测的方式来管理应用程序中的状态。用 Redux 应用状态的变化可以被追溯,调试和理解。本文将介绍 Redux 是什么,为什么需要它以及如何使用。

什么是 Redux?

Redux 是一种状态管理库,它的目的是为了管理 React 应用程序中的状态 (state)。它提供了一种可预测的方式来管理应用程序,并使其易于调试、测试和维护。Redux 的灵感来自于 Flux 架构,但它的设计更加简单和可扩展。

Redux 状态管理是一个典型的 "单向数据流",这意味着 Redux 状态管理库允许您设计一种典型的流程,其中所有的用户交互都被映射到事件 (actions),这些事件又修改应用程序的状态 (state)。Redux 库还提供了一种方法,称为 "reducers",用于执行状态修改。我们会在接下来的文章中更加详细的介绍。

为什么要使用Redux?

Redux 应用程序状态的变化是可追溯、可调试和易理解的,这些都是应用程序开发中非常重要的功能。Redux 状态管理库允许您更好地控制应用程序的状态。一些常见的应用场景包括:

  • 高度动态和复杂的用户界面:Redux 状态管理库会更好地处理界面层次结构和交互。
  • 多个并发数据源:Redux 状态管理库可帮助更好地处理异步数据流,并使其更容易控制状态转换。
  • React Native 应用程序:Redux 状态管理库允许您更好地管理移动应用程序的状态。
  • 其他框架:Redux 可以集成到许多不同的框架和库中,并且始终保持独立,这是非常重要的。

Redux 概念

在深入研究 Redux 之前,需要了解一些 Redux 的概念。以下是一些常见的概念:

Actions

"Actions" 代表在应用程序中发生的某个事件,例如,当用户点击一个按钮或接收到服务器返回数据时。Redux 的 "actions" 是一个简单的 JavaScript 对象,它们包含一个 "type" 属性和一些可选的有效载荷 (payload)。这些 "actions" 提供了一种更加抽象和简单的方式来描述发生的事件。

以下是一些 "action" 的示例:

Reducers

"Reducers" 是一个函数,它接收一个 "state" 对象和一个 "action"。 "Reducers" 接收 "actions" 并更新 "state" 对象返回一个新的 "state" 对象。这些 "reducers" 是 Redux 架构的核心,它们是使用 "actions" 修改状态的主要方式。请注意,它们必须是纯函数,因此不能修改传入的参数。此外,Redux 应用程序中的所有 "reducers" 都必须被组合在一起,以形成单个 "reducers" 函数来管理应用程序状态。

以下是一个简单的 "reducer" 函数示例:

-- -------------------- ---- -------
----- ------------ - -
  ------ --
-

-------- ----------------- - ------------- ------- -
  ------ ------------- -
    ---- ---------
      ----- - ---- - - --------------
      ------ -
        ---------
        ------ ---------------- - ---- --
      -
    --------
      ------ -----
  -
-
展开代码

可以看到,这个简单的 "reducer" 函数只是将 state.todos 数组添加一项。

Store

"Store" 是将 "actions" 和 "reducers" 结合在一起的对象。"Store" 是 Redux 应用程序状态的中央存储区域。应用程序中的所有 "state" 都存在于 "store" 中,"actions" 通过 "store" 来分发给 "reducers"。

以下是一个 "store" 对象的示例:

此处我们使用 createStore 方法,将我们在上面定义好的 todoReducer 和初始状态 initialState 结合在一起,创建了一个 store。

小结

在本文中,我已经讲解了什么是 Redux、为什么我们需要它以及 Redux 的一些核心概念。在下一篇文章中,我们将深入研究 Redux 的使用,向应用程序中添加 actions 和 reducers,以及如何使用 Redux 的 store 来管理你的应用程序状态。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c7a523cc0f7239cdf73dab

纠错
反馈

纠错反馈