npm 包 redux-standard-reducers 使用教程

前言

redux-standard-reducers 是一个用于 Redux 应用中创建标准 reducer 的 npm 包。它可以让你更加容易地编写 reducer,并使得 reducer 的代码更加易懂。

本文将介绍 redux-standard-reducers 的使用方法,包含详细的示例代码。

安装

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

基本用法

redux-standard-reducers 通过创建标准的 reducer 来简化开发人员的工作。你只需要定义最初的 state,以及你需要处理的 action,它将自动处理其他的步骤。

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

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

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

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

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

此代码使用了 redux-crud 的 initialState 函数来创建最初的 state。在此基础上,它添加了 loading 和 errors 属性。

然后,使用标准函数来创建 reducer。标准函数需要两个参数:初始状态和处理的 action。对于每个 action 类型,您需要返回一个新的状态。

例如,在此示例中,BOOKS_LOADING,BOOKS_LOADED 和 BOOKS_FAILED 是 action 类型。标准函数为每个 action 类型定义一个处理程序。

BOOKS_LOADING 处理程序将 loading 属性设置为 true。BOOKS_LOADED 处理程序调用 reduxCrud 的 queries.succeeded 函数,并将其结果(更新的状态)与 loading 属性合并。BOOKS_FAILED 处理程序类似,但它使用的是 queries.failed 函数,同时添加了错误信息。

这些不是固定的触发器,应该根据不同的应用场景进行不同的更改。

进阶用法

除了创建标准的 reducer 之外,redux-standard-reducers 还提供了一些高级功能,使得 reducer 的实现更加简单和可读。

  1. 基于关键字的 reducer

redux-standard-reducers 通过 createReducerFromMap 函数提供了基于关键字的 reducer。该函数接受一个对象作为参数,该对象将 action 作为键和处理程序函数作为值。

例如,以下代码将使用 BOOKS_LOADING 和 BOOKS_LOADED 类型创建两个处理程序:

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

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

----- ----- - ------------------------------ -------------------
  1. 基于嵌套的 reducer

redux-standard-reducers 还提供了基于嵌套的 reducer 功能,使得处理大型嵌套 state 的 reducer 更加容易。

例如,以下代码将 booksReducer 包装在 authorReducer 中,以便更容易地处理与作者相关的数据:

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

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

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

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

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

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

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

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

在此示例中,我们定义了一个 authorHandlers 对象,其中包含处理 AUTHORS_LOADING,AUTHORS_LOADED 和 AUTHORS_FAILED 类型的 action 的处理程序。它还包含处理 BOOKS_LOADED 类型的 action 的处理程序,该处理程序在 booksReducer 上调用标准 reducer。

为了使其正常工作,我们创建了一个包含 books 状态的 initialState 对象,并使用 createNestedReducerFromMap 函数将 booksReducer 包含在 authorReducer 中。这里,我们指定了将 BOOKS_LOADED action 映射到 authorId 属性,并调用 booksReducer 来更新该元素。

可以通过定义更多的嵌套来扩展嵌套 reducer 功能。

总结

redux-standard-reducers 是一个非常有用的 npm 包,可以使开发人员更加容易地编写 reducer。它提供了基于关键字的 reducer 和基于嵌套的 reducer,使 reducer 的代码更加可读和易于维护。

在实际项目中,我们可以按照业务场景中的需求进行相关修改。

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


猜你喜欢

  • npm包awesome-pretty使用教程

    一、前言 随着前端技术不断发展和深入,我们需要用到的第三方库和工具也越来越多。而npm作为Node.js的包管理工具,为我们提供了方便、可复用的代码,以及更快的开发和部署速度。

    3 年前
  • npm 包 swagger-js-flow 使用教程

    什么是 swagger-js-flow Swagger-js-flow 是一个基于 Swagger 规范创建 JavaScript 对象的库,可以生成文档、客户端代码和服务端代码等。

    3 年前
  • npm 包 webpack-html-plugin-svg-inline 使用教程

    前言 在现代 web 应用开发中,前端技术已经变得非常重要。在前端开发中使用各种工具和库已经成为日常。Webpack 是一个非常流行的前端构建工具,它为我们提供了很多强大的功能。

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

    前言 在开发前端应用程序时,有时需要使用到省市区的数据,为了实现这一功能,我们可以使用 react-picker-address 这一 npm 包。它为我们提供了一个快速、简单的省市区选择器,可以用于...

    3 年前
  • npm 包 wysiwyg-jquery 使用教程

    什么是 wysiwyg-jquery wysiwyg-jquery 是一款基于 jQuery 实现的所见即所得编辑器,支持图像、表格和链接等元素的编辑。是前端开发中常用的富文本编辑器之一。

    3 年前
  • npm 包 geokeyboard 使用教程

    在前端开发中,经常需要使用地理位置信息。而 geokeyboard 正是一款能够快速生成地理位置输入框的 npm 包。本文将详细介绍 geokeyboard 的使用方法,为初学者提供指导和帮助。

    3 年前
  • npm 包 hivetaxi-sdk 使用教程

    前言 在前端开发过程中,我们常常需要处理地理位置信息。比如,我们需要根据用户的位置信息来展示特定的地图,或者是根据用户的位置计算出最近的酒店、机场等。而处理地理位置信息,最常用的便是 GPS 技术。

    3 年前
  • npm 包 print-chunks-plugin 使用教程

    简介 print-chunks-plugin 是一个 webpack 插件,用于在编译时输出打包后每个 chunk 的信息,如 chunk 名称、chunk 大小、每个模块的大小等。

    3 年前
  • npm 包 rapid-ztx 使用教程

    随着前端技术的不断发展,现在前端的开发工作越来越复杂。为了提高效率并能够快速构建出高质量的项目,现在出现了很多工具和框架。其中, npm 是前端最常用的包管理工具之一,而 rapid-ztx 就是一个...

    3 年前
  • npm 包 intexp 使用教程

    什么是 intexp? intexp 是一个 npm 包,它提供了一种计算数学表达式的方法,支持加减乘除、括号和取余等操作。使用 intexp,可以方便地计算数学表达式,帮助你更快地完成一些算术计算。

    3 年前
  • npm 包 @ycleptkellan/substantive 使用教程

    简介 @ycleptkellan/substantive 是一个能够对英文句子中的实词进行筛选,提取的 npm 包。它使用了《朗文现代英语词典》作为基础数据,保证了准确的实词筛选结果。

    3 年前
  • npm 包 json-filter-expressions 使用教程

    前言 在前端开发中,经常需要对 JSON 数据进行筛选和过滤以满足特定的需求,例如只显示某些字段、按照某些规则过滤数据等。此时,npm 上的 json-filter-expressions 包就提供了...

    3 年前
  • npm 包 esm-http-server 使用教程

    esm-http-server 是一个能够支持使用 ES6 模块化语法的 HTTP 服务器。通过使用 esm-http-server,你可以用模块化的方式编写前端代码,并在本地快速启动一个服务器来执行...

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

    介绍 Aprenda-js-react 是一个轻量级的 JavaScript 库,可以帮助开发者更轻松地构建 React 组件。它可以帮助您更快速、高效地编写 React 组件,同时还提供了一些方便实...

    3 年前
  • npm 包 miter-socket-service 使用教程

    前言 在今天的互联网世界中,实时数据的传输比以往任何时候都更加重要。而 WebSocket 技术就是一个方便且快速的实时数据传输技术。但是,为了让你的实时数据传输更加稳定和高效,一款好的 WebSoc...

    3 年前
  • npm 包 store-rx 使用教程

    前言 随着前端技术的发展,状态管理变得越来越重要,有很多的方案可供选择。其中,RxJS 是一个流行的函数响应式编程库,提供了一种强大的响应式编程模式。 store-rx 是一个基于 RxJS 的状态管...

    3 年前
  • npm 包 babel-plugin-dynamic-import-node-sync 使用教程

    前言 在前端开发中,我们经常需要使用动态导入来优化代码性能。在浏览器中,我们可以使用原生的 import() 语法来实现动态导入,但是在服务端渲染(SSR)中,原生的 import() 会导致代码执行...

    3 年前
  • npm 包 design-patterns-api 使用教程

    设计模式是一组用于解决特定问题的经验性解决方案。在软件开发中,设计模式是一种面向对象编程的重要思想。设计模式可以提高代码的可复用性和可维护性,从而加快软件开发的速度和降低成本。

    3 年前
  • npm 包 netcall 使用教程

    使用 WebRTC 技术实现音视频通话是现代 Web 开发中不可或缺的一部分。而 NetEase IM 网易云信提供了一种易用的解决方案——Netcall。Netcall 是基于 WebRTC 实现的...

    3 年前
  • npm 包 dvdvdv 使用教程

    简介 dvdvdv 是一个实现卡片轮播的轻量级 npm 包,使用方便,可自定义样式,适用于前端开发中常见的卡片展示场景。 安装 使用 npm 进行安装: --- ------- ------基础使用 ...

    3 年前

相关推荐

    暂无文章