给初学者的 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


猜你喜欢

  • Node.js 实现自定义 SSL 证书的完整指南

    在现代 web 应用中, SSL 证书是至关重要的,它可以确保用户数据在传输中的安全性。一般来说,我们使用 CA(证书机构)颁发的数字证书,但是有时候我们需要自己生成 SSL 证书,例如本地开发环境或...

    9 天前
  • 无障碍应用程序开发中常见的颜色对比度问题及解决方法

    无障碍应用程序开发中常见的颜色对比度问题及解决方法 随着多样化、无障碍性和可访问性在应用程序开发中的不断提升,对于颜色对比度的要求也越来越严格。不合适的颜色对比度会使得有色觉缺陷的用户无法正确辨认信息...

    9 天前
  • ECMAScript 2016:如何使用新的指数运算符?

    ECMAScript 2016是JavaScript语言的一个标准版本,它带来了很多新的功能,其中一个重要的功能是指数运算符(**)。在这篇文章中,我们将探讨这个新的运算符,并且介绍如何在你的前端开发...

    9 天前
  • 如何解决 Material Design 中的 RecyclerView 选中项不高亮问题

    在开发 Android 应用的过程中,使用 Google 推出的 Material Design 指南可以使得应用更加美观,同时提升用户的交互体验。而其中的 RecyclerView 是一个非常强大的...

    9 天前
  • webpack 打包出现 module parse failed 错误,如何解决?

    引言 前端开发中,Webpack 是一款重要的打包工具,它的出现提高了项目的可维护性和代码的复用性。不过,在使用 Webpack 进行打包的过程中,可能会遇到一些错误,其中比较常见的是 module ...

    9 天前
  • 使用 Express.js 和 Handlebars.js 进行模板引擎开发

    在现代的 Web 开发中,前端工程师需要学习很多的开发技术和工具。其中一个很重要的组成部分就是模板引擎。模板引擎是一种将数据和 HTML 相结合的工具,用于在前端将后端数据可视化的过程中起到重要的作用...

    9 天前
  • 如何使用 Web Components 中的 Shadow DOM

    随着 Web 技术的发展和普及,Web 组件成为了大家越来越重要的一部分。而 Web Components 作为一种标准化的组件开发方式,其得到了广泛的认可和使用。

    9 天前
  • 使用 Hapi 实现 CORS:跨域资源共享

    跨域资源共享(CORS)是一种允许网页客户端从跨域服务器获取或发送任何资源的机制。由于浏览器的同源策略,对于从一个域名访问服务器上的资源时,只有与源页面具有相同协议、端口和 host 的结果才会被正确...

    9 天前
  • 响应式设计中如何解决大量内容的现实问题

    在现代化的响应式设计中,处理大量内容是一个非常重要的问题。这样的问题往往最容易出现在移动设备上,因为屏幕空间比较小,而内容又必须充分呈现给用户。在本文中,我们将从多个角度探讨如何解决这个实际问题,并提...

    9 天前
  • Mocha 测试过程中遇到“TypeError: Cannot read property 'length' of undefined”错误?怎么解决?

    在开发前端应用过程中,Mocha 是一个常用的测试框架。但是,有时在使用 Mocha 进行单元测试时,会遇到“TypeError: Cannot read property 'length' of u...

    9 天前
  • 在 Deno 中如何使用 logger 进行日志记录

    简介 Deno 是一种新兴的 JavaScript 和 TypeScript 运行时环境,目前越来越受到前端界和后端界的青睐。而在应用开发过程中,日志记录是不可或缺的一环。

    9 天前
  • 将 Node.js 集成到你的任何项目中:完整的指南

    将 Node.js 集成到你的任何项目中:完整的指南 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。它可以让你用 JavaScript 编写后端代码,更好地处...

    9 天前
  • Headless CMS 的架构原理及其应用场景分析

    前言 Headless CMS成为近年来前端发展中的一个重要资源,特别是在Web应用开发中不断盛行。本文将详细介绍 Headless CMS 的原理、特点和应用场景,以及如何在项目中使用 Headle...

    9 天前
  • 如何使用 Node.js 和 SSE 实现实时消息推送?

    在现代 Web 应用程序中,实时消息推送变得越来越常见。 SSE 技术(Server-Sent Events)是一种强大的工具,可以帮助您实现这种功能。本文将向您介绍如何使用 Node.js 和 SS...

    9 天前
  • AngularJS 在 SPA 应用中的应用最佳实践

    简介 AngularJS 是一个流行的开源 JavaScript 框架,专门为创建单页面应用程序(SPA)而设计。它是构建前端应用程序的最佳框架之一,提供了许多工具和功能来增强开发人员的体验。

    9 天前
  • 如何使用 Node.js 和 MongoDB 创建 API

    Node.js 和 MongoDB 都是非常流行的技术,它们可以被用来构建各种应用,特别是 web 应用。在本篇文章中,我们将探讨如何使用这两种技术来创建 API 服务。

    9 天前
  • RESTful API 的优势以及如何避免常见的错误

    什么是 RESTful API REST(Representational State Transfer)是一种 Web 应用程序开发模式,它是通过 HTTP 协议的四个请求方法:GET、POST、P...

    9 天前
  • 10 大无障碍网站设计原则

    无障碍网站设计指的是让所有用户都能够轻松地访问和使用网站,包括有视觉、听觉、语言、认知等不同障碍的用户。在设计网站时,遵循无障碍原则可以大大提高用户体验,同时也符合法律和道德要求。

    9 天前
  • PM2 与 NPM 应用依赖的关系详解

    在前端开发中,PM2 和 NPM 都是常见的依赖管理工具,它们在应用部署和管理过程中起到了很大的作用。本文将详细介绍 PM2 和 NPM 之间的关系以及它们在应用依赖管理中的应用。

    9 天前
  • Redis 宕机实例恢复的最佳实践

    前言 Redis 是一款极其流行的数据存储与缓存的工具。在一些高并发的 Web 应用中,Redis 往往承担着重要的角色,帮助提高了应用的性能和稳定性。 但是,Redis 不免会面临一些挑战,其中最常...

    9 天前

相关推荐

    暂无文章