npm 包 @marswang714/redux-loop 使用教程

1. 前言

在前端开发中,对于大型复杂应用,使用 Redux 进行状态管理已经是一种非常普遍的选择。Redux 的可预测性和易于调试等特点,使其备受开发者青睐。而 @marswang714/redux-loop 则为开发者提供了一种方便的方式来处理副作用(例如异步请求)。

2. 安装

使用 npm 进行安装:

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

3. 使用

3.1 创建 action creators

首先,我们需要创建 action creators,在此处我们需要使用 createEffectcreateActions 方法。例如:

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

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

此处的 createActions 将根据字符串 'FETCH_DATA' 自动创建 action creators(例如 fetchData.requestfetchData.successfetchData.failurefetchData.cancel 等)。这些 action creators 将在下文中使用。

另外,我们还需要针对副作用创建“effect” 函数,例如:

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

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

fetchEffect 函数返回一个 promise,在 promise 完成之前,副作用不会被执行。如果该 promise 执行成功,则返回的结果将被作为参数传递给相应的 success action creator;如果失败,则传递给 failure action creator。

3.2 reducer

我们现在需要处理 reducer,以便能够处理我们的新 action creators。使用 loop 函数是一种方便的方式,例如:

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

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

此处,我们使用 Effects.promise(fetchEffect()),以便将 fetchEffect 的结果传递给 action creators。同时,我们增加了另一个 action creator FETCH_DATA_SUCCESS,在响应完成时更新 state 中的数据。

3.3 组装

我们现在需要将我们的 action creators、reducer 和 middleware 组装在一起。首先,基本的 store 配置中的 middleware 必须包含 install() 方法:

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

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

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

之后,我们可以使用我们的新 action creators 进行 dispatch,例如:

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

4. 示例代码

为了更好的理解使用方法,我们提供一个简单的示例:

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

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

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

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

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

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

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

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

上述示例将从指定 URL 获取 JSON 数据,并将其存储在 Redux store 中。当数据更新时,将会在控制台中打印 state。

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


猜你喜欢

  • npm 包 sqlizer 使用教程

    在前端开发中,处理数据库查询是一个常见的任务。然而,手写 SQL 语句可能会变得非常繁琐和困难。这时,一个轻量级的 npm 包 sqlizer 就可以为我们提供很大的帮助。

    2 年前
  • NPM 包 Uniform 使用教程

    简介 Uniform 是一款基于 React 的可配置性的表格组件库。它拥有高度的可定制性和响应性,可以适用于各种场景的需求。 本篇文章将会介绍: 什么是 Uniform 如何安装 Uniform ...

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

    npm 包 iond-rpc 是一个开源的、基于 Node.js 的 RPC(远程过程调用)框架,它提供了快速、可靠的远程调用服务,适用于分布式应用程序的构建和管理。

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

    npm 是前端开发中常用的包管理工具,通过使用 npm 可以便利地安装和管理各种需要的依赖库和工具。 其中 generator-t 是一款非常实用的 npm 包,它可以帮助前端开发者快速搭建项目骨架,...

    2 年前
  • npm 包 unidb 使用教程

    简介 unidb 是一个基于浏览器本地存储(IndexedDB 或 WebSQL)的轻量级 JavaScript 数据库,用于前端数据的存储、查询、排序、过滤等操作。

    2 年前
  • npm 包 sqb-oracledb 使用教程

    在前端开发中,使用数据库进行数据存储和管理是非常常见的需求。sqb-oracledb 是一个 npm 包,用于帮助前端开发者在 Node.js 环境下连接 Oracle 数据库进行数据操作。

    2 年前
  • npm 包 ioncore-lib 使用教程

    ioncore-lib 是一个用于处理 ION(Ionic Network)加密货币的 npm 包,它提供了一系列的功能,帮助开发者更加容易地处理加密货币的交易、转账等操作。

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

    在前端开发中,常常使用路由控制来管理页面跳转。ng-react-router 是一个 Vue 这种视图层框架的路由控制包,既能够充分利用 React 组件化的优点,又能够免去手动实现路由控制的繁琐工作...

    2 年前
  • npm 包 joecore 使用教程

    概述 在前端开发中,我们通常使用各种工具来提高开发效率和代码质量。其中,npm 是一个非常重要的工具,它被广泛应用于包管理、依赖安装和脚本执行等方面。而 joecore 是一个优秀的 npm 包,它提...

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

    前言 React Native 是当前经常使用的跨平台移动应用开发框架,同时配套的也有许多实用的 npm 包,其中 bloodyowl-react-art 是一个基于 React Native 的矢量...

    2 年前
  • npm 包 apop 使用教程

    在前端开发中,我们经常需要对数据进行处理、操作和过滤。而 apop 这个 npm 包则提供了简单、易用、高性能的数据操作方式,能够大大提高我们的开发效率。本文将介绍如何使用 apop 进行数据操作。

    2 年前
  • npm 包 material-ui-master 使用教程

    前言 material-ui 是一款基于 Material Design 设计语言的 React 组件库,拥有丰富的 UI 组件,对于前端开发而言非常实用。本文将介绍如何使用 npm 包管理器安装并使...

    2 年前
  • npm 包 gulp-topological-pipe 使用教程

    前言 在前端项目中,自动化构建和任务管理是必不可少的。gulp 是一个非常方便和流行的工具,但是在处理依赖关系时,gulp 需要手动列出文件的顺序,这可能会导致任务失败或生成不正确的输出。

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

    在前端开发中,交互效果是非常重要的。而鼠标悬停事件是常见的一种交互效果。在 React 开发中,有一个叫做 react-hoverintent 的 npm 包可以帮助我们实现更加丰富的鼠标悬停效果。

    2 年前
  • npm 包 @morningconsult/tcp-proxy 使用教程

    随着互联网技术的快速发展,前端类技术也在不断地更新和迭代,其中 npm 包 @morningconsult/tcp-proxy 是近来备受关注的一种前端技术。它的作用是允许将 TCP 流量通过代理服务...

    2 年前
  • npm 包 rn-datepicker 使用教程

    日期选择器是前端开发中比较常用的组件之一,rn-datepicker 是一个基于 React Native 的日期选择器组件。它实现了大量的日期选择器功能,具有灵活性,并提供了简单易用的接口。

    2 年前
  • npm 包 tristate-checkbox-do-not-download 使用教程

    前言:在前端开发过程中,我们会使用到很多开源的第三方库或者是 npm 包。今天,我来介绍一个名为 tristate-checkbox-do-not-download 的 npm 包,它可以帮助我们轻松...

    2 年前
  • npm 包 angry-log 使用教程

    在前端开发中,经常会遇到需要打印日志的情况,比如调试代码、问题追踪等。而 console.log() 的功能虽然简单易用,但是输出的信息实在是太单调了,无法满足复杂的需求。

    2 年前
  • npm 包 cljs-boot 使用教程

    在前端开发中,使用 npm 包可以极大地提高开发效率。而 cljs-boot 是一个专门针对 ClojureScript 应用程序的构建工具,它提供了许多开箱即用的功能,比如自动重新编译等,使得开发者...

    2 年前
  • npm包project-client使用教程

    前言 npm是JavaScript的一个很流行的包管理工具,其中包括了许多项目依赖。而project-client就是一种可以使用npm管理的前端项目的客户端库,它可以帮助我们更轻松、更方便地在前端项...

    2 年前

相关推荐

    暂无文章