npm 包 redux-shape 使用教程

前端开发中,状态管理对于应用程序的设计和复杂程度非常重要。在 React 应用程序中,Redux 是一个流行的状态管理工具。然而,Redux 自身不提供任何数据结构或核心结构。因此,我们需要使用 Redux 相关的 npm 包。其中一个优秀的 npm 包是 redux-shape。

redux-shape 是一个基于对象形状的 Reducer 帮助程序。其目标是简化 Redux 的初始设置并为状态多维数组中的复杂应用程序提供帮助。

这篇文章将向您展示如何使用 redux-shape、它的优点以及如何将它应用于您的应用程序。

安装

首先,我们需要使用 npm 安装 redux-shape:

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

然后,在您的应用程序中添加它:

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

接下来,您可以开始使用 redux-shape。

数据对象的形状

redux-shape 帮助程序的一个重要特性是对象形状。在需要处理多个重要状态的应用程序中,快速访问联机状态可能很有用。redux-shape 中,您可以使用对象形状自定义状态。

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

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

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

在这个示例中,我们使用用户验证行为创建一个 Reducer。每次登录成功或退出登录时都会分别调用 USER_AUTHENTICATED 和 USER_UNAUTHENTICATED。在状态更改中,我们使用前一状态和行为的负载进行简单合并。

使用组合

由于 redux-shape 帮助程序的对象形状和用于对象排序的“shape”概念,您可以轻松地进行组合。例如,您可以将多个 Reducer 组合在一起:

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

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

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

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

在这个示例中,我们创建了两个 Reducer:modalReducer 和 userReducer。在 combineReducers() 中,我们将它们组合在一个 Reducer 中。

如何使用 redux-shape

setup

首先,在您的应用的文件中导入依赖:

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

声明初始状态

现在,您声明应用程序的初始状态:

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

定义 action 类型

接下来,您要定义可以触发状态更改的所有操作。一个为 action 定义一个常量对于文档和清晰度非常有用:

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

创建 action

在应用程序中的组件上创建 action 函数。例如,这个函数会触发 SET_POST 操作:

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

请注意,我们稍后将在创建 Reducer 时使用 SET_POST 类型。

创建 Reducer

现在是创建 Reducer 的时候。在这个过程中,我们将使用 createReducer:

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

Reducer 是一个功能。每个 Reducer 都有一个类型,以用于处理与该类型关联的状态更改。在这个示例中,“SET_POST”表示更改 post 属性。

还要注意的重要事项是,只要在 Reducer 中返回一个新的状态实例,我们就可以使用“…”运算符合并先前的状态并添加新状态,而不必担心任何意外的状态突变。

创建 selector

在 redux-shape 中,selector 是一个函数,它从您的状态对象中检索有用的值。redux-shape 中的 createSelector 函数是一个高阶函数,它接受一个或多个 selector 作为输入并返回一个新的 selector。例如:

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

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

在这个示例中,我们创建了一个更具体的 selector,该 selector 返回一个用户给定“post ID”选择的所选后到它的所有评论的数组。

dispatching actions

在您的应用程序中,您可以使用 dispatch 函数将 action 提交到您的 store 中。例如:

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

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

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

在这个示例中,我们定义了一个将 post 发送到 store 的 setPostHandler 函数。

总结

在本文中,我们学习了如何使用 redux-shape 包帮助我们在 React 应用程序中管理状态。我们还学习了如何声明状态的初始形状、定义 action 和使用 Reducer 和 selectors。通过使用 redux-shape,我们可以更方便地创建应用程序状态管理逻辑。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668fcd9381d61a354105d


猜你喜欢

  • npm 包 @kingjs/descriptor.scorch 使用教程

    介绍 @kingjs/descriptor.scorch 是一款用于对象描述符(descriptor)操作的 npm 包,提供了丰富的 API ,可以轻松的进行对象描述符的编辑操作。

    3 年前
  • npm 包 @kingjs/descriptor.write 使用教程

    npm 作为一个 JavaScript 包管理工具,为开发者提供了很好的便利。其中 @kingjs/descriptor.write 是一个非常实用的 npm 包,能够用于快速编写 JavaScrip...

    3 年前
  • npm 包 external-load 使用教程

    在 Web 开发中,前端开发不可避免的需要使用各种外部资源,如图片、字体、样式文件等等。在 Web 应用程序中,加载这些资源可以使用 HTML 的链接和脚本标记。 但是这并不能完全解决前端开发问题,一...

    3 年前
  • npm 包 rjs-calendar 使用教程

    rjs-calendar 是一个轻量级的 JavaScript 日历库,提供了丰富的功能和可定制性。它可以在 Web 应用程序中方便地添加日历功能,适用于多种应用场景。

    3 年前
  • npm 包 @mattkrick/event-source-polyfill 使用教程

    介绍 在前端开发过程中,我们有时需要对服务器端推送的数据进行处理,这就要用到 Server-Sent Event(SSE)技术。在浏览器端,我们可以使用 EventSource API 来与服务器端建...

    3 年前
  • npm 包 ipyiframe 使用教程

    背景 ipyiframe 是一个基于 Jupyter 的交互式开发环境,旨在为开发者提供更高效、更灵活的科学计算和数据分析工具。本文将介绍如何使用 npm 包 ipyiframe 构建一个可交互的前端...

    3 年前
  • npm 包 new-npm-test 使用教程

    npm 是一个广受欢迎的 JavaScript 包管理器,它使得开发人员可以轻松地安装、更新和共享代码。在前端开发中,我们经常使用 npm 来管理项目依赖,并且可以发布自己的 npm 包使其他开发者可...

    3 年前
  • npm包poe-watch-api使用教程

    在前端开发中,我们通常会使用很多第三方库和工具来提高开发效率和增强应用功能。其中,npm作为js的包管理器,为我们提供了非常丰富和方便的包和工具库。今天,我们要介绍的是一个 非常实用的npm包:poe...

    3 年前
  • npm 包 vue-inline-styled 使用教程

    前言 在前端开发中,样式是不可或缺的部分。而在 Vue 项目中,我们常常使用 CSS modules 或者 scoped CSS 来处理样式的隔离和局部化。但在某些场景下,即便采用了这样的方式,还是会...

    3 年前
  • npm 包 padding-box 使用教程

    在前端开发中,经常需要对盒子进行样式调整,其中 padding 的设置是一个常见的操作。而 padding-box 是一个方便的 npm 包,可以帮助我们更好地管理盒子和内边距。

    3 年前
  • npm 包 @auditless/cli 使用教程

    简介 @auditless/cli 是一个快速创建 React 项目的命令行工具。它提供了一个可定制化的脚手架,帮助我们快速建立 React 项目,并且可以自定义项目结构、Webpack 配置等,旨在...

    3 年前
  • npm 包 @kingjs/descriptor.remove 使用教程

    在前端开发中,我们经常需要操作对象或数组的属性,例如添加、删除或修改属性等等。而 npm 包 @kingjs/descriptor.remove 就提供了一种方便、快捷地删除对象属性的方式,下面将详细...

    3 年前
  • npm 包 esquery-scope 使用教程

    esquery-scope 是一个基于 esquery 的 npm 包,用于确定 JavaScript 代码中变量的作用域。当你在进行代码分析或优化时,了解变量的作用域是非常重要的。

    3 年前
  • npm 包 html-scraper-pipeline 使用教程

    介绍 html-scraper-pipeline 是一个 npm 包,它可以帮助我们从网页上抽取并处理数据。这个包的设计极其灵活,可扩展性极高,使得我们可以根据自己的需求,自由组合出一个针对我们 sp...

    3 年前
  • npm 包 http-status-code-registry-cli 使用教程

    npm 包 http-status-code-registry-cli 是一个非常实用的工具,它可以帮助前端开发人员快速查询 HTTP 状态码的含义和使用场景。本文将介绍如何安装和使用 http-st...

    3 年前
  • npm 包 neos-publisher 使用教程

    简介 neos-publisher 是一个基于 Node.js 的命令行工具,它可以帮助前端开发者将静态网页部署到 AWS S3 或者其他的 web 服务器上。使用 neos-publisher,你可...

    3 年前
  • npm 包 react-values 使用教程

    前言 在前端开发中,我们常常需要在各个组件之间共享数据。在 React 中,可以使用 Props 和 Context 进行数据传递。但当数据需要在多个组件之间共享并且需要进行状态更新时,我们就需要使用...

    3 年前
  • npm 包 iron-trol 使用教程

    在前端开发中,常常需要使用一些工具来加速开发,其中包括常用的 npm 包。本文将介绍一个常用的 npm 包 —— iron-trol,它是一个可用于构建 UI 界面的库,使用非常简单且功能强大。

    3 年前
  • npm 包 relay.ts 使用教程

    什么是 NPM 包 NPM 是 Node.js 中的一个包管理器,可用于查找、安装和发布 Node.js 模块。在前端开发中,我们也常用 NPM 包来扩展项目功能,提高开发效率。

    3 年前
  • npm 包 oko-test-comp 使用教程

    介绍 oko-test-comp 是一个基于 Vue.js 开发的前端组件库,提供了一些常用的 UI 组件,例如按钮、表格、输入框等。oko-test-comp 的设计风格简洁、清晰,易于上手。

    3 年前

相关推荐

    暂无文章