npm 包 redux-whenever 使用教程

随着前端应用的复杂度越来越高,状态管理也变得越来越重要。Redux 是一个很流行的状态管理库,它有着良好的架构和可拓展性,但是在某些情况下,使用 Redux 可能会引入一些不必要的复杂度。为此,下面介绍一个轻量级的 Redux 辅助工具——redux-whenever(GitHub 地址)。

什么是 redux-whenever?

redux-whenever 是一个基于 Redux 的辅助库,它通过增加一些常用的 Redux 模式来简化 Redux 的使用。redux-whenever 可以处理所有 Redux 相关的操作,使得在开发中更加简单和高效。

redux-whenever 的主要功能如下:

  • 无需编写 reducers 和 action,通过提供相应的 reducer 名称与操作类型,即可生成对应的 reducer、actionCreator。
  • 提供了 asyncResult 模式,可以轻松处理异步操作,包括 loading、error 和 data 等状态的管理。
  • 可以自动注入 middleware,达到这样的目的:对于某些状态变化我们可能需要触发不同的 API 请求,如果能够在这些状态变化的同时请求 API,那么 redux-whenever 也可以很好地实现。

如何使用 redux-whenever?

redux-whenever 的使用非常简单,只需要安装依赖,定义对应的 reducer 名称和操作类型即可。

安装

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

定义 reducer 名称和操作类型

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

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

使用生成的 reducer 和 actionCreator

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

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

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

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

异步操作

对于异步操作,可以使用 asyncResult 模式,示例代码如下:

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

------ ------- ---------------
  ----------
  ----------
  --------
-- -
  --------------- - -------- -- --------------------------
  ------------- -------- -- ----- --------
---
  • promiseGetter:必选,函数类型,用于指定当前异步操作的 Promise 生成函数。
  • metaGetter:可选,函数类型,用于指定当前 Promise 的参数,也可以将数据中的 id 与 action 中进行绑定。

在对应的 reducer 中,需要处理 asyncResult 模式。示例代码如下:

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

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

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

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

使用 middleware

对于某些状态变化我们可能需要触发不同的 API 请求,如果能够在这些状态变化的同时请求 API,那么 redux-whenever 也可以很好地实现。示例代码如下:

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

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

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

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

autoRequestMiddleware 会自动处理 actionTypes 为 ${actionType}_SUCCESS${actionType}_FAILED 的请求状态操作,如上面的示例代码所示。

总结

redux-whenever 是个轻量级的 Redux 辅助工具,它可以帮助我们更加简单和高效地处理异步操作和重复性操作,同时也可以使我们的代码更加清晰和易读。它广泛的应用已经得到了众多开发者的认可并得到了积极的维护。

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


猜你喜欢

  • npm 包 wifi-transfer 使用教程

    前言 在开发前端应用程序时,不可避免地需要实现本地文件和服务器文件之间的文件传输。传统的方式是通过 USB 或者数据线将文件从本机拷贝到其他设备上。然而,近年来出现了一种名为“wifi-transfe...

    3 年前
  • npm 包 chat007 使用教程

    随着互联网的快速发展,即时通讯成为了人们日常生活中不可或缺的一部分,而前端实现即时通讯可以让用户更加快速、便捷地进行交流。npm 包 chat007 是一款能够帮助开发者快速集成即时聊天功能的工具,本...

    3 年前
  • npm 包 password-forge 使用教程

    前言 在 web 应用中,用户密码的安全性是至关重要的。人们常常会使用弱密码或将相同密码在多个网站中使用,这使得账户非常容易受到黑客攻击和数据泄露的风险。 因此,在开发 web 应用时,必须了解如何安...

    3 年前
  • npm 包 randomise 使用教程

    简介 在前端开发中,经常需要生成随机数或随机字符串,以模拟一些场景。npm 包 randomise 就是一个非常方便的工具,可用于生成符合自定义要求的随机数或字符串。

    3 年前
  • NPM 包 Smart LRU Cache 使用教程

    Smart LRU Cache 是一个 Node.js 环境下的 LRU(最近最少使用)缓存库。缓存库的作用是将一些常用但是计算量较大的数据缓存起来,以避免重复计算,提高程序的运行速度。

    3 年前
  • npm 包 smart-next-tick 使用教程

    在前端开发中,经常会遇到需要异步执行一些任务的情况。使用定时器或者 Promise 可能是比较常规的选择,但是在某些情况下,它们可能无法满足需求。这时候,使用 setImmediate 方法可以是一个...

    3 年前
  • npm 包 @xailabs/electron-log 使用教程

    本文将介绍使用 npm 包 @xailabs/electron-log 记录 Electron 应用程序日志的详细步骤和示例代码。本文章旨在为前端开发人员提供深入的学习和指导意义。

    3 年前
  • NPM包: angular4-datepicker 使用教程

    #NPM包: angular4-datepicker 使用教程 日期选择是Web应用程序中一个关键的组件,很多开发者都遇到过需要从日期选择中提取日期数据的情况。在Angular中,我们可以使用npm包...

    3 年前
  • npm 包 gladys-picotts 使用教程

    在前端开发中,我们常常需要用到文字朗读功能,以方便用户通过听觉方式获取信息。常见的 TTS(Text-to-Speech)技术有多种,其中一种是使用开源软件 Pico TTS。

    3 年前
  • npm 包 mff-checkbox 使用教程

    什么是 npm 包? 在了解 mff-checkbox 之前,我们需要先理解什么是 npm 包。Npm 是一个 JavaScript 包管理工具,它可以让我们很方便地安装、管理和发布 JavaScri...

    3 年前
  • NPM包HtmlChecker-Lite 使用教程

    在前端开发中,html代码的质量非常重要,它直接关系到页面的加载速度和性能。而手动检测和修改html代码是一项非常繁琐和耗时的任务,因此使用一个工具来自动化检测和修改html代码是非常必要的。

    3 年前
  • npm 包 mff-redux-loading-bar 使用教程

    简介 mff-redux-loading-bar 是一个 React 前端开发时可以使用的 npm 包。它可以帮助你在应用程序中实现一个简单的页面加载进度条。它基于 Redux 的架构设计开发,并且支...

    3 年前
  • npm 包 mff-table 使用教程

    介绍 mff-table 是一款基于 Vue.js 的简洁易用的数据表格组件,支持排序、分页、筛选、自定义列头和列内容等常见功能。其优点在于代码简单易懂,组件定制化程度高,配套文档丰富,适合初学者和有...

    3 年前
  • npm 包 cordova-storyboard-image-config 使用教程

    在移动应用开发中,常常需要使用多张不同尺寸的图片适配不同的设备。这个问题可以通过 Cordova 提供的 storyboard 配置解决。但是 storyboard 配置需要手动创建,十分繁琐。

    3 年前
  • npm 包 vue-component-anywhere 使用教程

    简介 vue-component-anywhere 是一个方便 Vue.js 开发者,在 HTML 标签内部直接使用 Vue 组件的库。它提供了一种简单的方式,在页面中直接使用 Vue 组件,而不需要...

    3 年前
  • npm 包 gulp-checker 使用教程

    简介 gulp-checker 是一个基于响应式规范的 Gulp 插件,可以用于检查文件的大小、文件类型和文件名等。它是一款非常实用的前端工具,可以帮助前端开发者轻松地检查项目中的代码质量和规范性,提...

    3 年前
  • npm包 mibew-gulp-greh 使用教程

    什么是 mibew-gulp-greh mibew-gulp-greh 是一个前端工具包,用于自动化构建 Greh CMS 站点。它封装了常用的 Gulp 插件和任务,并提供了简易的配置文件,使得开发...

    3 年前
  • npm 包 simple-rem 使用教程

    引言 在前端开发过程中,我们经常需要处理各种不同的屏幕大小和设备像素密度的问题。一个常见的解决方法是使用 rem 单位代替像素作为 CSS 单位。使用 rem 单位可以保证在不同屏幕大小和像素密度下,...

    3 年前
  • npm 包 ember-mockdate-shim 使用教程

    在开发前端应用时,我们可能会遇到需要测试特定日期或时间下应用表现的情况。但是在测试过程中,使用真实的日期和时间很难达到稳定、可重复的结果。因此,我们需要模拟日期和时间,来验证应用在不同时间下的表现。

    3 年前
  • npm包classily.js使用教程

    前端开发中,经常需要在HTML元素中添加类名来进行样式控制和JavaScript操作。然而,随着项目的复杂度增加,类名的管理变得越来越麻烦。此时,npm包classily.js应运而生。

    3 年前

相关推荐

    暂无文章