React + Redux 实现 TodoList 的完整教程

阅读时长 12 分钟读完

前言

React 是一个非常流行的前端框架,它提供了一种声明式的方式来构建用户界面。Redux 是一个状态管理库,它可以让我们更好地管理应用程序的状态。在这篇文章中,我们将通过一个实例来学习如何使用 React 和 Redux 实现一个 TodoList 应用程序。这个应用程序将包括以下功能:

  • 添加任务
  • 删除任务
  • 标记任务为已完成
  • 显示所有任务
  • 显示未完成任务
  • 显示已完成任务

准备工作

在开始之前,我们需要安装一些必要的工具和库。首先,我们需要安装 Node.js 和 npm。Node.js 是一个 JavaScript 运行时环境,而 npm 是 Node.js 的包管理器。

安装完成之后,我们可以使用以下命令来创建一个新的 React 应用程序:

这将创建一个名为 todo-list 的新应用程序,并启动开发服务器。我们可以在浏览器中访问 http://localhost:3000 来查看应用程序。

创建 TodoList 组件

接下来,我们需要创建一个 TodoList 组件。这个组件将是我们应用程序的主要组成部分。在 src 目录下创建一个新的文件 TodoList.js,并添加以下代码:

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

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

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

这个组件只是简单地渲染了一个标题。现在,我们可以将这个组件添加到我们的应用程序中。在 src/App.js 文件中,将以下代码添加到文件的顶部:

然后,将以下代码添加到 App 组件的 render 方法中:

现在,我们可以在浏览器中查看应用程序,应该可以看到一个包含标题的页面。

添加任务

接下来,我们将添加一个表单来向 TodoList 中添加任务。在 TodoList.js 文件中添加以下代码:

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

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

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

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

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

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

这个代码添加了一个表单和两个状态:tasktaskstask 用于存储当前输入的任务,tasks 用于存储所有任务。handleInputChange 函数用于更新 task 状态,handleSubmit 函数用于添加任务到 tasks 列表中。

现在,我们可以在浏览器中查看应用程序,并尝试添加一些任务。我们应该可以看到任务被添加到列表中。

删除任务

接下来,我们将添加一个删除按钮来删除任务。在 TodoList.js 文件中添加以下代码:

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

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

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

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

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

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

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

这个代码添加了一个 handleDelete 函数,用于从 tasks 列表中删除任务。我们还添加了一个删除按钮,它将调用 handleDelete 函数并传递任务的索引作为参数。

现在,我们可以在浏览器中查看应用程序,并尝试删除一些任务。我们应该可以看到任务被成功删除。

标记任务为已完成

接下来,我们将添加一个复选框来标记任务为已完成。在 TodoList.js 文件中添加以下代码:

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

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

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

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

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

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

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

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

这个代码添加了一个 completed 属性来存储任务是否已完成。我们还添加了一个复选框来标记任务为已完成,并更新 handleToggle 函数来切换任务的 completed 属性。

现在,我们可以在浏览器中查看应用程序,并尝试标记一些任务为已完成。我们应该可以看到任务被成功标记。

显示所有任务

接下来,我们将添加一个按钮来显示所有任务。在 TodoList.js 文件中添加以下代码:

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

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

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

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

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

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

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

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

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

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

这个代码添加了一个 filter 状态来存储当前任务过滤器。我们还添加了三个按钮来切换任务过滤器,并更新 filteredTasks 变量来根据过滤器筛选任务。

现在,我们可以在浏览器中查看应用程序,并尝试使用过滤器来筛选任务。我们应该可以看到任务被成功筛选。

结论

在本文中,我们通过一个实例学习了如何使用 React 和 Redux 实现一个 TodoList 应用程序。我们学习了如何添加任务、删除任务、标记任务为已完成、显示所有任务、显示未完成任务和显示已完成任务。这些功能可以帮助我们更好地管理任务,并使我们的工作更加高效。希望这篇文章能够对你有所帮助。

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

纠错
反馈

纠错反馈