npm 包 reduxr-async 使用教程

前言

reduxr-async 是一个基于 Redux 的异步动作处理的中间件。它使得在 Redux 应用程序中使用异步的操作更加容易。

如果你正在学习 Redux,掌握 reduxr-async 可以帮你更好的理解 Redux 中间件的概念,同时也可以提升你在实现相关项目时的效率。

在这篇文章中,我们将会介绍 reduxr-async 的使用方法,让你快速掌握它的使用。

安装

首先,在你的项目中安装 reduxr-async:

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

理解异步操作

在 Redux 应用程序中,每个操作都必须是同步的。然而,在应用程序中,我们必须处理大量的异步操作,如从服务器获取数据。针对这种情况,可以使用 reduxr-async 解决。

我们可以将异步操作分成三个步骤:

  1. 发送一个异步请求(例如,从服务器中获取数据)
  2. 请求结束后,将数据返回到 reducer 中
  3. 在 reducer 中更新 state

reduxr-async 允许我们在这三个步骤中的任何一步中执行异步操作,并预定义了一些 action 类型和 reducer,使异步操作更加容易实现。

使用 reduxr-async

要使用 reduxr-async,需要修改 store 的创建方式,将异步操作处理中间件添加到中间件列表中。

我们可以使用 applyMiddleware() 方法来添加中间件。

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

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

在上面的代码中,我们通过 applyMiddleware() 方法将 reduxr-async 中间件添加到中间件列表中。我们还添加了 thunk middleware,它可以像 reduxr-async 一样处理异步 action。

现在,我们可以创建 reduxr-async 中的异步操作。它们通常称为“action creators”。

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

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

在上面的代码中,我们创建了一个名为 fetchData 的异步操作。它返回一个 action,其中 type 为 FETCH_DATA,对应 reducer 将会用到。对于异步操作,reducer 会处理四种情况。

  1. 请求开始(START)
  2. 请求成功(SUCCESS)
  3. 请求失败(ERROR)
  4. 请求取消(CANCEL)

我们可以为每个请求添加一个函数,处理它们各自的情况。

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

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

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

在上面的代码中,我们添加了一个名为 dataReducer 的 reducer。该 reducer 添加了对 FETCH_DATA 的处理,并使用『...asyncReducers('FETCH_DATA')』引入异步 action 处理器。

异步操作处理器内包含了 FETCH_DATA_START、FETCH_DATA_SUCCESS、FETCH_DATA_ERROR 和 FETCH_DATA_CANCEL 的 reducer 处理器。当异步操作完成时,reducer 会根据状态类型返回一个新的 state。

我们可以通过以下方法将 reducer 加入 store。

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

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

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

在上面的代码中,我们将 dataReducer 添加到 rootReducer 中。

现在,我们只需调用 fetchData 来开始异步操作。结果将根据我们在 reducer 中定义的状态类型返回不同的 state。

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

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

示例代码

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

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

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

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

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

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

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

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

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

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

上面的代码将会从服务器中获取数据并显示在页面上。

总结

reduxr-async 是一个方便实现异步操作的 npm 包。使用它可以快速并容易地处理异步操作。通过添加 reduxr-async 中间件,我们可以很容易地定义异步操作。reducer 会根据状态类型返回一个新的状态,并将它们更新到 Redux store 中。

希望这篇文章能对你理解 reduxr-async 的使用方法有所帮助。对于没有尝试过使用的朋友来说,可以为你的 next.js、React、Vue 项目提供帮助。

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


猜你喜欢

  • npm 包 webstar 使用教程

    前言 在前端开发中,我们经常使用提供了许多方便的工具和库,它们扩展了语言和框架的能力,使得我们可以更加高效地完成任务。其中,使用 npm 包管理工具来管理和使用依赖是现代前端开发的重要一环。

    4 年前
  • npm 包 webstarter 使用教程

    前言 前端开发离不开使用各种开源库和工具,而 npm 就是一个开源包管理器,常常用来寻找并安装各个开源的 JavaScript 模块,方便我们快速构建应用。 本篇文章将介绍一款名为 webstarte...

    4 年前
  • npm 包 webstats 使用教程

    Webstats 是一个轻量级的 JavaScript 库,可以帮助前端开发人员在开发过程中实现网站访问量统计。这个 npm 包提供了简单易用的 API,可以追踪访问页面的数量,独立用户数量,页面停留...

    4 年前
  • npm 包 webstream 使用教程

    前言 Webstream 是一个基于 Node.js 和 WebSocket 协议的实时通信方案,支持客户端和服务端之间的双向通信应用。它可以用在游戏、聊天、实时监控等一系列的项目当中。

    4 年前
  • npm 包 weface 使用教程

    在前端开发中,我们经常需要使用到第三方依赖包,这些依赖包可以帮助我们快速实现一些功能。npm 是目前最流行的前端包管理工具,它为我们提供了非常丰富的依赖包。其中一个非常实用的依赖包是 weface。

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

    在前端开发中,代码质量和规范非常重要,为了方便开发者维护代码质量和规范,社区开发了许多工具来帮助我们达到这些目的,其中一个非常有用的工具就是 eslint。我们可以通过定义规则来检查代码,从而保证代码...

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

    前言 随着前端技术的发展,前端开发工作变得越来越复杂和庞大,随之而来的是,前端开发需要用到的工具和库也日益增加。针对这种情况,NPM(Node Package Manager)应运而生,提供了一种便捷...

    4 年前
  • npm 包 weflow-imagemin 使用教程

    在前端开发中,图片压缩是一个必不可少的环节。然而,手动一个一个地压缩图片是一项费时费力的工作。如果你使用的是 Webpack,那么你可以借助一个 npm 包叫做 weflow-imagemin 的插件...

    4 年前
  • npm 包 weflow-rev-all 使用教程

    前言 在前端开发中,我们通常需要对静态资源进行版本控制,以便在页面内容更新后,用户浏览器能够正确加载最新的资源。此时,我们就需要用到静态资源版本管理工具。weflow-rev-all 是一个帮助开发者...

    4 年前
  • npm 包 weg-bigpipe 使用教程

    前言 随着前端页面的复杂化,我们需要更快速、高效的方式来渲染页面。传统的的同步渲染方式已经无法满足需求,所以需要采用新的技术来进行页面渲染。在这个背景下,BigPipe 诞生了。

    4 年前
  • npm 包 weg-command-server 使用教程

    简介 npm 是一个用于管理 Node.js 依赖库的命令行工具。weg-command-server 是一个基于WebSocket的命令行交互工具库,支持多端口同时监听和交互。

    4 年前
  • npm 包 weg-preprocessor-extlang 使用教程

    在前端开发中,我们经常需要处理不同类型的文件。其中,CSS 文件是其中较为常见的一种。而为了更加便捷地开发 CSS,我们引入了预处理器。预处理器可以提供更多的变量、函数、语法等高级特性,提高我们的开发...

    4 年前
  • npm 包 werk 使用教程

    简介 Werk 是一个基于 Node.js 的 web 框架,它提供了一个快速、简单、灵活的方式来构建 web 应用程序。Werk 使用 npm 包作为插件管理工具,你可以轻松地在你的项目中安装和使用...

    4 年前
  • npm 包 werkint-gulp 使用教程

    前言 随着前端技术的不断发展和更新,前端工程化已经逐渐成为了前端开发的标配。而其中的自动化构建工具也成为了前端必备的一个工具。gulp 就是一个非常好用的自动化构建工具,而 werkint-gulp ...

    4 年前
  • npm 包 werkint-gulp-driver-symfony 使用教程

    前言 在前端开发中,使用 Gulp 管理和自动化构建任务是非常常见的。而在使用 Gulp 进行构建的过程中,我们往往需要使用到一些插件来辅助我们完成一些常见的构建任务,比如文件压缩、代码格式化等等。

    4 年前
  • npm 包 werkint-gulp-dumper 使用教程

    简介 werkint-gulp-dumper 是一款基于 Gulp 的前端自动化构建工具,其主要功能是在构建过程中将样式、脚本和 HTML 返回的错误信息打印在控制台中,以便于开发者快速定位并解决问题...

    4 年前
  • npm 包 werkint-gulp-pipe-script 使用教程

    npm 是 Node.js 的包管理器,是前端开发中常用的工具之一。werkint-gulp-pipe-script 是一个 npm 包,它是基于 Gulp.js 的一个插件,用于将 JS 文件通过一...

    4 年前
  • npm 包 werkint-gulp-pipe-stylesheet 使用教程

    简介 werkint-gulp-pipe-stylesheet 是一个基于 Gulp 构建的前端自动化工具,可以帮助开发者进行样式表的预处理、处理和优化。它提供了一种简单、直接、高效的方式来解决前端样...

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

    在进行前端开发时,我们常常需要与后台进行实时通讯,例如使用 WebSocket 或 SockJS。而 webstomp-client 正是一个基于 WebSocket 协议的 STOMP 客户端库,它...

    4 年前
  • npm 包 webstorage 使用教程

    简介 Webstorage 是一个基于 JavaScript 的 localStorage 和 sessionStorage 管理器,它可以帮助我们更方便地对 Web Storage 进行操作。

    4 年前

相关推荐

    暂无文章