Redux 在 React 中的应用

阅读时长 6 分钟读完

Redux 是一种状态管理库,具有十分广泛的应用场景,特别适用于 React 框架的状态管理。本文将介绍 Redux 在 React 中的应用,并提供详细的学习指导和示例代码。

Redux 认识

Redux 基于 Flux 架构的思想,将组件之间的状态管理转移到了一个全局状态存储中心。Redux 将应用的状态存储在一个全局的 Store 中,通过对 Store 的修改实现对应用状态的管理。

在 Redux 中,状态是只读的,即只能够通过 dispatch(action) 对状态进行修改。通过 Action 创建器函数创建 Action 对象,Action 描述了对数据的操作类型。Reducer 函数接收 Action 对象并根据不同的 Action 类型进行相应的处理,最终将新的状态存储到单一的 Store 中。

Redux 具有如下的核心概念:

  • Store:应用的状态存储中心;
  • Action:描述状态的操作类型;
  • Reducer:处理 Action 的 Reducer 函数;
  • Dispatch:发送 Action 的方法;
  • Selector:从 Store 中获取状态的方法。

在 React 应用中使用 Redux,需要执行如下步骤:

  1. 安装 Redux 库:npm install --save redux
  2. 安装 React-Redux 库:npm install --save react-redux

创建 Store

在 React-Redux 库中,通过 createStore 函数创建一个 Store 对象,示例代码如下:

其中,参数 reducer 是一个 Reducer 函数,用于处理 Action,生成新的 State。

使用 Provider 组件

使用 React-Redux 库提供的 Provider 组件,可将 Store 对象注入到整个应用中。示例代码如下:

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

定义 Action 和 Reducer

定义 Action 用于描述对状态的操作类型,以及 Reducer 函数,用于处理 Action,生成新的 State。

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

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

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

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

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

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

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

连接 React 和 Redux

使用 connect 函数将 React 组件与 Redux 的 Store 进行连接,从而让 React 组件可以获取到 Store 中的状态。示例代码如下:

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

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

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

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

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

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

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

在上述代码中,mapStateToProps 函数用于将 Store 中的状态映射到组件的 props 属性中;mapDispatchToProps 函数用于将 Action 创建器函数映射到组件的 props 属性中。

总结

Redux 是一种状态管理库,具有广泛的应用场景,特别适用于 React 框架的状态管理。在 React 应用中使用 Redux,需要执行创建 Store 对象、使用 Provider 组件、定义 Action 和 Reducer、连接 React 和 Redux 等步骤。学习 Redux 的应用,对于理解 React 的状态管理和复杂应用的数据流动具有重要的指导意义。

示例代码

本文使用的示例代码已上传至 GitHub,欢迎下载和学习。

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

纠错
反馈