npm 包 redux-optimist-prime 使用教程

介绍

redux-optimist-prime 是一个通过 redux 状态管理来实现客户端乐观更新的 npm 包。它的主要作用是让你的应用程序更加健壮,即使请求发生错误,客户端的界面不会受到影响。

这个包的特点在于,它会维护两个状态树,一个称为 future state,另一个称为 present state。future state 代表我们正在做的操作,而 present state 代表当前的应用程序状态。

安装

你可以通过 npm 安装 redux-optimist-prime:

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

然后在你的项目中引入它:

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

基本用法

1. 创建 Optimist Store

使用 createOptimist 函数创建一个带有乐观更新能力的 store。

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

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

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

2. 创建乐观 Action

使用 withOptimism 函数生成一个带有乐观更新的 action。

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

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

3. 处理 Action

在 Reducer 中处理带有乐观更新的 action。

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

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

4. Dispatch Action

使用 dispatch 方法分发带有乐观更新的 action。

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

高级用法

1. 自定义状态键值

如果你的应用程序在使用 future state 和 present state 外还会有其他的状态,你可以通过 createOptimist 函数的第二个参数来自定义状态键值。

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

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

2. 取消请求

你可以使用 cancelOptimism 方法来取消添加到队列中的未来状态。

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

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

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

3. 自定义乐观更新行为

你可以使用 withOptimism 函数的第二个参数来自定义乐观更新行为。

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

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

总结

redux-optimist-prime 是一个非常实用的 npm 包,帮助你实现了非常有用的乐观更新功能。通过它,我们可以维护两个状态树,一个用于表示当前的状态,而另一个则用于表示将要进行的操作,以此实现乐观更新。如果你的应用程序需要支持乐观更新,那么你一定要尝试一下 redux-optimist-prime。

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


猜你喜欢

  • npm 包 ssh-spawner 使用教程

    什么是 ssh-spawner? ssh-spawner 是一个基于 Node.js 的 npm 包,能够在程序中自动化连接到 SSH 服务器,执行命令,并获取响应结果。

    4 年前
  • npm 包 ssh2-extra-ciphers 使用教程

    SSH 是一种常用的远程登陆协议,通常用于各种服务器管理,SCP,SFTP 等文件传输,以及远程端口转发等功能。现在,npm 上有一个名为 ssh2-extra-ciphers 的包,可以使 SSH ...

    4 年前
  • npm 包 ssh2-multiplexer 使用教程

    前言 在前端开发中,我们经常需要在服务器上执行一些命令,如上传文件、执行脚本等等,这时就需要用到 SSH 连接。虽然 Node.js 已经自带了 SSH 客户端和服务器,但并不方便使用,使用起来比较麻...

    4 年前
  • npm 包 `squuid` 的使用教程

    简介 squuid 是一个用于生成短、轻量级、易读的 UUID 的 npm 包。其使用 TypeScript 开发,保证了代码的可维护性和可扩展性。本文将介绍如何使用 squuid 生成 UUID,以...

    4 年前
  • npm 包 sqwiggle-node 使用教程

    前言 在日常的前端开发中,我们经常会用到第三方的库来提升我们的开发效率。而 npm 包则是前端开发者使用最多的库之一。其中,sqwiggle-node 这个 npm 包则是一个非常有用的工具,能够方便...

    4 年前
  • npm 包 sqwk 使用教程

    什么是 sqwk sqwk 是一款高效的前端监控工具,可用于记录网站每位访客的行为,分析用户使用行为以及检测异常行为,从而帮助开发人员快速定位和解决问题。 安装 sqwk 在终端中,使用以下命令安装 ...

    4 年前
  • npm 包 sr-condition-wercker 使用教程

    在前端开发过程中,随着项目的复杂度不断提高,我们需要使用许多工具来帮助我们完成开发任务。其中,npm 包是一个非常有用的工具,它可以让我们轻松地引入、管理和使用 JavaScript 库。

    4 年前
  • npm 包 sqlizr 使用教程

    npm包sqlizr使用教程 随着Web页面逐渐多样化,大量的动态数据展示和数据交互需求使得前端需要更灵活、高效的数据处理方案。而sqlizr就是一种在前端使用SQL语句进行数据处理的解决方案。

    4 年前
  • 使用 npm 包 SpringNodeJSExample 制作前端应用

    在前端开发过程中,我们经常需要使用一些 npm 包来解决我们的问题,而 SpringNodeJSExample 是一个非常有用的 npm 包,它提供了一些基础的后端支持来帮助我们在前端应用中完成一些复...

    4 年前
  • npm 包 springtunes 使用教程

    介绍 SpringTunes 是一个集成了音乐和视频播放器的 React 组件库,旨在为开发者提供简单易用但功能丰富的播放器组件。它兼容所有的主流浏览器,支持多种音频和视频格式,并提供了自定义样式、事...

    4 年前
  • npm 包 springuper-winston 使用教程

    本文将介绍 npm 包 springuper-winston 的使用教程。springuper-winston 是一个基于 winston 的日志管理系统,可以方便地将日志存储到 Elasticsea...

    4 年前
  • npm 包 ssh2-config 使用教程

    介绍 ssh2-config 是一个 npm 包,用于读取和解析 OpenSSH 配置文件(常见在 macOS 和 Linux 等操作系统上),并生成已解析的配置对象,使其能够在 ssh2 和其他使用...

    4 年前
  • npm 包 ssh2-auth 使用教程

    前言 随着互联网和移动互联网的发展,前端工程师已经不再只是写一些简单的 HTML、CSS 和简单的 JavaScript 脚本,而是需要使用最新的技术和库来构建大型 Web 应用。

    4 年前
  • npm 包 ssh2-executor 使用教程

    在前端开发中,随着项目的不断增长,很多时候需要进行远程服务器操作,例如自动化部署、快速升级等。而在这样的场景下,我们需要一种工具来帮助我们方便地进行远程服务器操作。

    4 年前
  • npm 包 sprinkles-ui 使用教程

    随着 Web 技术的不断发展,前端工程师的工作变得更加复杂和繁琐。其中,UI (User Interface)设计是一个重要的领域,可以直接影响用户的使用体验。因此,许多公司和开发者为了方便快捷地创建...

    4 年前
  • npm 包 ssh2-client 使用教程

    在 Web 开发中,很多场景都需要使用 SSH2 进行连接和传输文件。而 node.js 中一个重要的 NPM 包,ssh2-client,可以非常方便地实现 SSH2 的连接和操作。

    4 年前
  • npm 包 sqlm 使用教程

    介绍 sqlm 是一个针对前端的 SQL 查询库,它使用 Promise 风格调用 API,可以进行命令式 SQL 查询构建,同时支持参数化查询和无需要预编译的查询。

    4 年前
  • npm 包 sqlnosql 使用教程

    SQL NoSQL 是一款简单易用的 npm 包,它可以用于在任何 JavaScript 应用程序中快速查询、插入、更新、删除 SQL 和 NoSQL 数据库。 在本文中,我们将详细介绍如何使用 SQ...

    4 年前
  • npm 包 sqlobj 使用教程

    前言 在 Web 前端开发中,我们经常需要与后端数据库进行交互。针对这一需求,现有的数据库管理系统不够方便,因此出现了一些第三方封装库来方便前端工程师进行数据库交互。

    4 年前
  • npm 包 sqljs 使用教程

    什么是 sql.js? sql.js 是一个 JavaScript 实现的 SQLite 数据库。它可以让我们在浏览器环境下使用 SQLite 而无需安装任何软件或插件,同时也可以在 Node.js ...

    4 年前

相关推荐

    暂无文章