npm包redux-slim-async使用教程

前言

Redux 是一个非常流行的 JavaScript 状态管理库, 它的简洁可靠以及优秀的开发体验使得它成为了 React 生态体系中最受欢迎的一部分之一。虽然 Redux 优秀,但有时也会比较繁琐,需要写很多重复的代码。为此,简化 Redux 常用场景的 "redux-slim" 库被诞生,但该库在异步请求方面支持不足。本文介绍的 "redux-slim-async" 库,是以 "redux-slim" 为基础,专门增强异步请求的功能。该库的输入输出与 Redux 保持一致,但底层代码已经帮你做好了异步请求等重复的操作,适合那些追求简化开发人员的工作量的场景。

安装

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

提供的API

  • wrapAction:将没有异步操作的 action 包装成带请求状态的 action。
  • asyncDispatch:发送异步请求并返回带请求状态的 action。
  • asyncConnect:将一个 react 组件和一个或多个 redux 数据源的嵌套包装在一起,以确保通过异步请求准确渲染组件。

使用示例

以下示例假设读者已经了解了 Redux 的使用,使用 React 编写组件并且熟悉使用 connect 函数将组件与 Redux 关联起来。

wrapAction

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

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

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

我们传入 TYPES 数组用于指定需由 redux-slim-async 生成的 3 个 action(REQUEST、SUCCESS、FAILURE),以及 promise 方法,此方法会在异步操作成功后返回的结果并且由 redux-slim-async 代码帮助我们自动执行该方法。

asyncDispatch

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

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

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

我们可以使用 asyncDispatch 生成带有请求状态的 action,用于处理异步请求的状态变化情况。

asyncConnect

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

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

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

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

使用编写异步操作是很常见的,在我们依赖其结果将数据传递给 react 组件之前执行异步操作。asyncConnect 可以帮助我们处理这个问题,它提供了原生 react-redux 的 connect 函数,但是当我们组件创建完成后,它也会将请求结果附加到属性上。

他的 API 中定义了一个 Promise 操作数组(promise),其中包含每一个操作所需的promise操作,这里我们可以发起1个或多个远程 API 和/或在 redux 中调派(dispatch)操作。通常情况下,我们需要引入操作作为 React prop,以便我们可以更改其状态。例如,我们可以分别将 getNotifications 和 getUserInfo 操作设置为相应的回调 prop。

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

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

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

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

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

结论

通过 "redux-slim-async" 库,我们可以快速简单地进行异步请求处理,省去了繁琐的请求处理流程,让您更加关心业务逻辑。本文已经介绍了该库的基础使用方法及相关API,但该库还有很多其他用法,读者可以自行前往官网查看相关API的文档。

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


猜你喜欢

  • npm 包 Number-to-Alphabet 使用教程

    在前端开发中,经常会遇到需要将数字转换成字母的需求。npm 包 Number-to-Alphabet 提供了一种快捷便利的方式来解决这个问题。本篇文章将介绍如何安装和使用 Number-to-Alph...

    4 年前
  • npm包 @paulwhitaker/create-build 使用教程

    简介 在前端开发中,我们经常需要将一些代码打包或编译成可发布的文件。为了方便开发者进行这一步操作,就有了一些自动化打包工具,例如Webpack、Rollup等等。但是使用这些工具对于初学者来说可能不太...

    4 年前
  • NPM 包 Marcioomonte 使用教程

    本文介绍了如何使用 npm 包 Marcioomonte。这个包是一个轻量级的框架,可以将多个元素组合成响应式布局。在本教程中,我们将学习这个框架的基础知识并进行实际应用。

    4 年前
  • npm 包 @codegenai/root 使用教程

    前言 @codegenai/root 是一个可以帮助开发者快速创建前端项目的 npm 包,它可以帮助前端开发者生成模板,减少开发成本和时间。在本文中,我们将详细介绍如何使用该 npm 包。

    4 年前
  • npm 包 react-native-loading-ellipsis 使用教程

    随着移动端应用的不断发展,很多企业和开发者开始使用 React Native 开发移动应用。在 React Native 开发中,使用 npm 包是非常常见的一种方式。

    4 年前
  • npm 包 @vka/ts-utils 使用教程

    简介 @vka/ts-utils 是一个 TypeScript 工具库,提供了许多常用的函数,以便在开发过程中更高效地处理数据或进行计算。该库的主要目标是帮助开发者减轻编写重复代码的负担,提高开发效率...

    4 年前
  • npm 包 @primitybio/vue 使用教程

    1. 简介 @primitybio/vue 是一个 Vue.js 的组件库,它提供了一系列实用的 UI 组件和工具箱,方便开发者快速构建移动端应用。 该组件库使用 TypeScript 编写,支持在 ...

    4 年前
  • npm 包 @primitybio/vue-template-compiler 使用教程

    前言 在 Vue.js 项目中,通常我们使用 .vue 单文件组件的方式来编写组件。而这种方式需要借助于 Vue 的模板编译器来将模板编译成可运行的 JavaScript 代码。

    4 年前
  • npm 包 vue-lazy-image-loading 使用教程

    介绍 vue-lazy-image-loading 是一个基于 Vue 的懒加载图片库。该库可以减小网页的首次加载时间,并且在用户滚动页面时自动加载图片。使用 vue-lazy-image-loadi...

    4 年前
  • npm 包 currencytf-api 使用教程

    npm 包 currencytf-api 是一个用于查询货币汇率的 API 包。它提供了简单易用的接口,帮助开发者快速获取各种货币之间的汇率信息。本篇文章将详细介绍该 npm 包的使用方法,配合代码示...

    4 年前
  • npm包tailwind-truncate-multiline使用教程

    简介 在前端开发中,我们经常需要对文本进行截断处理来适应不同的屏幕大小。使用tailwind.css框架可以很方便地实现单行文字的截断处理,但对于多行文本的截断处理却需要通过CSS进行复杂的处理。

    4 年前
  • npm 包 widget_cookie_cutter_test 使用教程

    前言 在前端开发中,有许多需要用到 Cookie 的场景。为了方便 Cookie 的操作,我们开发了一个 npm 包,名为 widget_cookie_cutter_test。

    4 年前
  • npm 包 linux-shell-command 使用教程

    前言 在前端开发中,我们常常需要在项目中执行一些 Linux shell 命令。但是,由于大部分前端开发者并不擅长 Linux 的使用,因此需要一些途径来简化命令的执行和操作的简单化。

    4 年前
  • npm 包 @apparts/error 使用教程

    在前端开发中,我们经常会遇到各种各样的错误和异常。为了更好地管理和处理这些异常,我们可以使用 @apparts/error 这个 npm 包作为我们的异常处理工具。

    4 年前
  • npm 包 @levelbots/messages 使用教程

    前言 在开发前端项目时,我们时常需要发送消息给用户或者从用户那里获取消息,使用现成的 npm 包是一种很好的解决方案。@levelbots/messages 是一个好用的 npm 包,可以方便地发送和...

    4 年前
  • npm 包 react-native-redirapp 使用教程

    react-native-redirapp 是一款可以帮助前端开发者在 React Native 应用中使用外部链接跳转到已安装应用的工具包。 安装 你可以通过 NPM 仓库进行安装: --- ---...

    4 年前
  • npm 包 events-sourcing 使用教程

    什么是 events-sourcing Events sourcing 是一种软件架构模式,它将应用程序所处理的所有事件保存到一个事件日志中,并使用这些事件重建应用程序的状态。

    4 年前
  • npm 包 mock-websocket 使用教程

    前端开发中,模拟数据是必不可少的,而 mock-websocket 提供了一种简单易用的方式来模拟 WebSocket 的后端交互。本文将介绍如何使用 npm 包 mock-websocket。

    4 年前
  • npm 包 npm-package-walker 使用教程

    npm 是前端开发过程中必不可少的工具,而 npm 包也是我们在开发过程中不可或缺的利器,它为我们提供了许多高质量的工具和库。npm-package-walker 就是一个非常实用的 npm 包,它可...

    4 年前
  • npm 包 testbackgroundcolor 使用教程

    本文将为大家介绍使用 npm 包 testbackgroundcolor 的详细步骤和使用方法,帮助大家实现更加美观的网页设计。 npm 是什么? npm 是 Node.js 包管理器,用于查找、安装...

    4 年前

相关推荐

    暂无文章