给初学者的 Redux 教程与实战

前言

Redux 是一个 JavaScript 应用程序状态容器管理器,是 React 生态系统中最流行的数据流管理工具之一。它解决了一个共享状态管理的问题,是构建大型应用的有力工具。

Redux 原本是为了配合 React 使用而开发的,但是它可以与任何 JavaScript 应用程序一起使用。Redux 通过单向数据流来控制应用程序的状态,它遵循“单一源真相”的理念,即所有应用程序的状态都存储在一个对象中(称为“store”),此状态可被单一地更改和管理。

在本篇文章中,我们将为初学者介绍 Redux 的基础知识,并提供实战案例来帮助你更好地理解。

Redux 基本概念

Redux 的基本概念非常简单,可以分为三个部分:store、action 和 reducer。

Store

Store 是 Redux 的核心,它是一个负责存储所有应用程序状态的对象。Store 对象只有一个,并且可以被应用程序的任何部分访问。Store 中的状态可以通过专门的函数进行修改。

在 Redux 中,我们可以通过 createStore() 方法来创建 Store 对象。

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

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

Action

Action 是 Redux 中用于描述发生了什么事件的纯 JavaScript 对象。Action 对象必须包含一个类型(type)属性,用于描述发生的事件类型。这个类型通常是一个字符串常量。

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

Reducer

Reducer 是一个纯函数,用于根据 Action 对象修改存储在 Store 中的状态。每当 Action 对象发生变化时,Redux 会自动调用 Reducer 函数,来更新 Store 中的状态。

Reducer 函数接收两个参数:旧状态(state)和 Action 对象(action)。该函数在不修改旧状态的情况下返回一个新状态。

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

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

Redux 实战

现在,我们将进入练习环节,我们将创建一个示例 Todo 应用程序,这将帮助您更好地理解 Redux。

创建 Todo 应用程序

首先,我们将使用 create-react-app 构建一个新的 React 应用程序。在终端中输入以下命令:

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

然后,在 Terminal 中切换到 my-todo-app 目录:

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

安装 Redux

接下来,我们需要安装 Redux 包:

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

创建 Store

在 src/index.js 文件中创建 Store:

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

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

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

创建 Action

在 src/actions/index.js 文件中创建新的 Action:

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

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

创建 Reducer

在 src/reducers/index.js 文件中创建新的 Reducer:

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

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

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

创建组件

现在,我们可以创建两个新的组件:TodoList 和 TodoForm。

TodoList 组件

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

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

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

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

TodoForm 组件

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

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

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

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

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

最终结果

现在,我们有了 TodoList 和 TodoForm 组件,它们将一同工作来构建我们的 Todo 应用程序。

在 App 组件中,我们需要使用这两个新组件:

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

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

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

运行应用程序

现在,我们可以运行本地开发服务器来查看我们的应用程序:

--- -----

现在,在浏览器中打开 http://localhost:3000,你将看到我们的新的 Todo 应用程序。你可以添加新的任务并在列表中查看它们。

结论

在本篇文章中,我们为初学者详细介绍了 Redux 的基础知识,并提供了一个实战案例来帮助你更好地理解。

Redux 是构建大型应用程序的强大工具,如果你还没有学习过它,请花一些时间了解其基础知识。希望这个教程对你有帮助!

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670f2bbe5f55128102632612