npm 包 redux-universal-promise 使用教程

在前端开发中,Redux 已成为状态管理的标配,而且随着 React Hooks 的出现,Redux Hooks 的使用也变得越来越普遍。但是,当你在项目中需要处理异步操作时,手写一大坨中间件或者 redux-thunk 可能会令你感到挫败。这时,redux-universal-promise 这个 npm 包就可以帮助你解决这个问题。

redux-universal-promise 是什么?

redux-universal-promise 是一个帮助你处理 Redux 异步操作的 npm 包。它提供了一个通用的统一方法 actionPromise,你只需要传递一个 Promise 对象即可。其中的中间件会根据 Promise 的状态分别触发请求、成功和失败的 action,让你的代码更加简洁和易懂。

安装 redux-universal-promise

要在项目中使用 redux-universal-promise,你需要先安装它:

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

使用 redux-universal-promise

在你的 Redux 应用中使用 redux-universal-promise 很简单。你只需要按照以下步骤编写代码即可:

1. 导入相关的库

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

2. 定义 action 构造函数

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

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

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

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

3. 定义 reducer

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

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

4. 创建 store

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

5. 在组件中 dispatch action

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

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

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

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

在这里,我们通过 dispatch(action) 的方式传递了一个对象作为参数。这个对象中包含了三个属性:

  • promise:要执行的 Promise 对象
  • onRequest:触发请求的 action 的 type
  • onSuccess:触发成功的 action 的 type
  • onFailure:触发失败的 action 的 type

上面这段代码中,我们传递了一个使用 Promise.resolve 创建的 Promise 对象。在实际项目中,你需要使用你的真正的异步请求替代它。

6. 处理请求、成功和失败 action

最后,redux-universal-promise 会自动派发三个 action:

  • 请求 action:当 promise 被返回但在解决之前,actionOfType 请求 actionType 将被派发
  • 成功 action:当请求成功时,actionOfType 成功 actionType 将被派发,并且 promise 的解决值将是这个 action 的 payload
  • 失败 action:当解决promise失败时,actionOfType failureActionType 将被派发,并且promise的拒绝值将是这个action的error

在上述代码中,我们分别定义了上述三种 action 的构造函数,在 reducer 中分别处理对应的 actionType。

总结

redux-universal-promise 是一个方便简洁的工具,可以使 Redux 应用中异步操作的处理变得更加容易和优美。使用它可以简化代码,提高开发效率。

更多文档和示例代码可以在 redux-universal-promise 的 GitHub 仓库中找到:https://github.com/LesterGallagher/redux-universal-promise.

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


猜你喜欢

  • npm 包 @wulechuan/gulp-concat-via-folder-names 使用教程

    在前端开发中,经常需要将多个文件合并成一个文件,在这个过程中如果能够按照文件夹名称进行合并会更加高效。因此,今天我们介绍一款非常好用的 npm 包 @wulechuan/gulp-concat-via...

    2 年前
  • npm 包 fixed-number-abbreviation 使用教程

    在前端开发中,经常会遇到需要处理数字格式的情况。其中一项常见的需求是对大数字进行简写,例如将 10000000 表示为 10m,1.5 亿表示为 150m,等等。这时候,一个可以使用的 npm 包就是...

    2 年前
  • npm 包 superfly-css-task-clean 使用教程

    超级酷炫的前端项目需要超级酷炫的 CSS 样式,但随着项目的增多,纷繁复杂的 CSS 文件容易让人眼花缭乱。为了管理 CSS 文件,我们可以使用 npm 包 superfly-css-task-cle...

    2 年前
  • npm 包 tfs-commit-types 使用教程

    在前端项目开发过程中,版本控制是非常重要的一环。为了更好地组织和管理版本,我们通常会使用 Git 进行代码托管和版本控制。而在 Git 中,commit message 的规范化也十分重要。

    2 年前
  • npm 包 acs-bluetooth 使用教程

    市面上最常见的蓝牙硬件设备是手机和蓝牙耳机,但是蓝牙还有很多其他应用场景,比如智能家居、工控设备等。而 acs-bluetooth 这个 npm 包就提供了一种简化蓝牙连接和数据交互的方式。

    2 年前
  • npm包 react-gridify 使用教程

    简介 React-Gridify是一个基于React的网格布局组件,它可以帮助你轻松地在你的Web应用程序中实现响应式布局。 该组件提供了一组预定义的布局规则,可以使你的布局在不同的设备上具有一致的外...

    2 年前
  • npm 包 scroll-change 使用教程

    简介 scroll-change 是一个可用于监听网页滚动事件的 npm 包,可以在页面滚动时触发自定义事件。它可以提高网站的互动性和视觉效果。 安装 使用 npm 安装: --- ------- -...

    2 年前
  • npm 包 decre 使用教程

    1. 什么是 decre? decre 是一个轻量级的 JavaScript 库,可用于对数字进行加密和解密。它支持多种算法,包括 AES、DES、3DES、RC4 等。

    2 年前
  • npm 包 koa-transform 使用教程

    什么是 npm 包 koa-transform? koa-transform 是一个用于处理 koa 中间件的 npm 包,它的主要功能是将请求体和响应体中的数据按照指定的格式转换。

    2 年前
  • npm 包 react-audio-player 使用教程

    简介 现如今,越来越多的网站和应用都需要用到音频播放器,而在前端开发领域,有很多优秀的音频播放器库供我们使用。其中,npm 包 react-audio-player 是一款基于 React 的音频播放...

    2 年前
  • npm 包 cds-rpc 使用教程

    前言 在前端开发中,我们常常需要使用到 RPC(Remote Procedure Call,远程过程调用)进行远程服务调用。在 Node.js 生态系统中,通过使用 cds-rpc 这个 npm 包可...

    2 年前
  • npm 包 wrap-define 使用教程

    前言 在前端的开发过程中,使用一些第三方的库和框架是必不可少的,而通过 npm 安装的包也成为了开发者们的首选。npm 是世界上最大的软件注册表之一,拥有超过 800 万个软件包,其中就包括了大量的前...

    2 年前
  • npm 包 `cargo-js` 使用教程

    前言 在前端开发中,我们经常需要利用第三方库来提高开发效率和代码质量。而 npm 即为我们提供了便捷的包管理工具,让我们可以很方便地将第三方库引入到项目中。 而 cargo-js 则是一个特殊的 np...

    2 年前
  • npm 包 devops-team-rat 使用教程

    前言 在进行软件开发过程中,代码测试和部署是不可或缺的环节。为了提高团队的效率和代码质量,一些团队开发了一些 devops 工具,其中 npm 包 devops-team-rat 就是一个优秀的工具。

    2 年前
  • npm 包 generator-azure-node 使用教程

    前言 随着云计算的稳步普及,云开发成为了越来越多开发者的首选方案。本文将介绍如何使用 npm 包 generator-azure-node,快速搭建一个 Azure Node.js 应用程序。

    2 年前
  • npm 包 liljay-common-utils 使用教程

    在前端开发中,我们常常需要使用一些工具包来方便我们的开发工作。其中,npm 这个包管理器对于前端开发来说是非常重要的一项基础设施。在 npm 上有着无数的包可以供我们使用,今天我们要介绍的是一个非常实...

    2 年前
  • npm包o2-payment-stripe使用教程

    前言 Stripe是一家全球知名的支持各种支付方式的公司,在很多网站和应用中都常常使用到。在前端开发中,接入Stripe支付十分常见,它的API接口也十分友好。针对Stripe支付,我们可以使用npm...

    2 年前
  • npm 包 otp-js 使用教程

    OTP(One-Time Password)是一种用于身份验证的算法,它的原理是根据一个密钥和当前的时间戳生成一个动态的密码。这种算法被广泛用于银行、电商等领域,以保证用户的账户安全。

    2 年前
  • npm 包 redux-generator-action 使用教程

    redux-generator-action 是一个可以将 action 创建函数和 reducer 模板打包在一起的 npm 包,可以方便地生成 redux 中的 action 和 reducer,...

    2 年前
  • npm 包 sinopia-gitlab-auth 使用教程

    简介 sinopia-gitlab-auth 是一个 npm 包,它为 Sinopia Registry 提供了 GitLab 集成的功能。Sinopia 是一个私有的 npm registry,而 ...

    2 年前

相关推荐

    暂无文章