npm 包 redux-optimistic-manager 使用教程

介绍

redux-optimistic-manager 是一个针对 Redux 应用的 npm 包,它的主要作用是管理 Redux 中的 optimistic action。在 Redux 应用中,我们通常会发起一些会改变应用状态的 action,但有些 action 可能会失败,比如创建一个新的记录时,可能由于某些原因导致创建失败,这时我们可以通过 redux-optimistic-manager 包来实现一些乐观的处理。

安装

使用 npm 进行安装:

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

使用

创建 middleware

在 Redux 应用中使用 redux-optimistic-manager,需要创建一个中间件,示例代码如下:

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

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

在上面的代码中,我们使用 applyMiddleware 函数来添加 optimisticMiddleware 中间件。

发起 optimistic action

通过 redux-optimistic-manager 发起 optimistic action,需要分别指定 action 类型和 payload:

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

这里我们演示的是添加一个待办事项,我们通过 typepayload 来描述 action 的类型和数据。然后我们指定了一个 optimistic 属性,将其设为 true,表明这是一个乐观的 action,表示我们希望这个 action 能够成功执行。然后,我们指定了 onSuccessonFailure 属性,这两个属性值都是一个对象,表示在 action 执行成功和失败时,要分别发起的 action。

reducer 处理乐观 action

当我们发起一个乐观 action 时,Redux 中的状态有可能还没有更新,但我们希望用户可以看到最新的状态。为了实现这个需求,我们需要在 reducer 中对这些乐观 action 进行特殊处理,示例代码如下:

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

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

在上面的代码中,我们使用 handleActions 函数来创建一个 reducer。然后,我们针对 ADD_TODO action 进行了特殊处理,我们判断了 action.optimistic 属性是否为 true,如果为 true,则将新增的 todo 插入到数组的前面,表示用户已经成功创建了一个 todo。如果为 false,则不需要做任何操作。在 ADD_TODO_SUCCESSADD_TODO_FAILURE 中,我们也可以对这两种 action 进行特殊处理。

示例

下面是一个完整的示例代码:

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

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

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

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

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

在上面的示例代码中,我们创建了一个 Redux 应用,然后定义了三个 reducer: ADD_TODOADD_TODO_SUCCESSADD_TODO_FAILURE。我们使用 applyMiddleware 函数来添加中间件 optimisticMiddleware。最后,我们发起了一个 ADD_TODO 的 action,这是一个乐观的 action,它希望能够成功执行。如果执行成功,则会发起一个 ADD_TODO_SUCCESS 的 action;如果执行失败,则会发起一个 ADD_TODO_FAILURE 的 action。

总结

redux-optimistic-manager 包是一个非常有用的工具,它可以帮助我们实现一些乐观的处理。在实际的项目中,有些操作可能会出现失败的情况,但我们希望用户能够看到最新的状态,这时我们可以使用这个工具来实现这个功能。

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


猜你喜欢

  • npm 包 react-native-bridgefy-sdk 使用教程

    随着移动互联网时代的到来以及物联网技术的不断发展,越来越多的开发者开始关注移动通信技术的应用。而在这个过程中,一款优秀的通信 SDK 往往能够大大提升开发者的开发效率和用户体验。

    3 年前
  • npm 包 @tegan/create-modular-scale 使用教程

    @tegan/create-modular-scale 是一个用于生成可扩展的模块化比例尺的 npm 库。它可以在设计系统构建过程中帮助前端开发人员轻松地创建比例尺。

    3 年前
  • npm 包 maybank 使用教程

    简介 maybank 是一款基于 React 的前端组件库,旨在提供一系列常用的 UI 组件和样式。可以通过 npm 安装使用。 安装 可以通过 npm 直接安装 maybank: --- -----...

    3 年前
  • npm 包 @highhi/ifn 使用教程

    随着前端技术的不断发展,前端开发过程中需要用到的第三方库也越来越多。而 npm 是目前前端工程师必知必会的一个包管理工具,使用 npm 可以方便地安装、管理、发布各种前端相关的包。

    3 年前
  • npm 包 ng-dynamic-modal 使用教程

    在前端开发过程中,我们经常会用到弹窗组件来展示一些信息、表单、操作等。而 ng-dynamic-modal 这个 npm 包就可以帮助我们快速方便地实现弹窗功能。 本篇文章将详细介绍 ng-dynam...

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

    前言 在进行网站开发时,有时我们希望在用户滚动页面时隐藏或显示页面头部。这可以通过使用 react-headroom-extended 包来实现,它是一个 React 组件,提供了顶部固定和隐藏的功能...

    3 年前
  • npm 包 appinfo-node 使用教程

    1. 什么是 appinfo-node appinfo-node 是一款基于 Node.js 平台的 npm 包,通过此包可以方便地获取应用程序的版本号、名称、描述等信息。

    3 年前
  • npm 包 customelement-cookie-notice 使用教程

    在一个网页中,我们需要获取用户的一些信息并存储到_cookie_中,这是很常见的使用情景。但是,为了遵守 GDPR 和 CCPA 法规,我们需要在我们网站上提供 Cookie 通知。

    3 年前
  • npm 包 json-ligjtdb.js 使用教程

    简介 json-ligjtdb.js 是一个基于 JSON 数据存储的前端数据库,可以方便地存储和读取数据。它的特点是轻量级、易用性高,可以用于多种应用场景。 安装和使用 安装 --- -----...

    3 年前
  • npm 包 @karan-cloudev/tslint-rules-extra 使用教程

    在前端开发中,我们使用许多工具来提高我们的开发效率和代码质量。其中一个非常有用的工具就是 TSLint,可以让我们在编写 TypeScript 代码时捕捉潜在的错误和不良实践。

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

    简介 React 是目前最流行的前端开发框架之一,它可以轻松地构建复杂的用户界面。然而,在开发过程中,当加载较大组件或 API 请求时,可能会出现长时间的白屏等待时间。

    3 年前
  • npm 包 @getty.io/feathers-knex 使用教程

    在前端开发中,我们通常需要对数据进行操作,而使用数据库则是一种高效且可靠的方式。在 Node.js 开发中,我们可以使用 Knex.js 库来简化数据的操作,并提升代码的可读性。

    3 年前
  • npm 包 airglass-planning 使用教程

    在前端开发中使用 npm 包已经是家常便饭了。今天,我要介绍一个名为 airglass-planning 的 npm 包,它是一款方便并且易于使用的任务规划工具。在本文中,我将详细介绍如何安装和使用 ...

    3 年前
  • npm 包 diogenes-utils 使用教程

    介绍 diogenes-utils 是一个基于 JavaScript 的 npm 包,它提供了许多常用的工具函数,让我们的前端开发更加高效和便捷。 安装 我们可以用 npm 来安装 diogenes-...

    3 年前
  • npm 包 cimb 使用教程

    介绍 cimb 是一个基于 Node.js 的测试框架,它支持编写和运行单元测试、集成测试和端到端测试。它可以在命令行和浏览器中运行,也可以与 CI/CD 工具集成。

    3 年前
  • npm 包 react-json-editor-color-label 使用教程

    概述 npm 是一个非常流行的 Node.js 包管理器。它提供了一个强大的工具来管理和发布 JavaScript 模块。在前端开发中,我们经常使用 npm 来导入第三方模块,以便我们更高效地开发。

    3 年前
  • npm 包 vue-flag-icon-2 使用教程

    前言 在前端开发中,经常需要使用到国旗图标。而 vue-flag-icon-2 便是一个很好的 npm 包,提供了 273 个国旗图标以供使用。 安装 vue-flag-icon-2 使用 npm 安...

    3 年前
  • NPM包@quixotic/cli使用教程

    什么是@quixotic/cli @quixotic/cli是一个基于Node.js开发的命令行工具,可以快速生成React项目的脚手架。它采用了最新的开发技术,支持ES6/7,JSX等新特性,能够极...

    3 年前
  • npm 包 @quixotic/client 使用教程

    在现代 web 开发项目中,用到 npm 是非常普遍的,这是因为 npm 是非常方便的前端包管理工具,它可以帮助我们方便地管理我们的代码依赖,并且也可以让我们更方便地分享和重用我们的代码。

    3 年前
  • npm 包 @quixotic/core 使用教程

    什么是 @quixotic/core @quixotic/core 是一个前端工具包,它提供了很多方便的工具函数和组件。这个包包含两个相关但不一样的部分,分别是 QuixoticUtil 和 Quix...

    3 年前

相关推荐

    暂无文章