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

Redux-loop 是一个使用 JavaScript 的 Redux 状态管理库,其主要特性是使用者可以以更加语义化的方式来定义 Redux 中的异步操作。@mazechazer/redux-loop 是 Redux-loop 的一个优秀实现,它封装了一些非常便利的辅助函数和中间件,以帮助使用者更加方便地在 Redux 中使用 Redux-loop。本文将详细介绍 @mazechazer/redux-loop 的使用方法,并给出一些示例代码。

安装

在你的项目中,你需要先安装 Redux 和 redux-loop:

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

接着,你可以安装 @mazechazer/redux-loop,使用如下命令:

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

安装成功后,我们就可以开始使用 @mazechazer/redux-loop 了。

基本使用

@mazecharer/redux-loop 为我们提供了一个 loop 函数,我们可以使用这个函数来定义 Redux-loop 的行为,它接受三个参数:

  • model:Redux 的 model,也就是我们需要管理的状态。
  • effect:指定我们的操作所需要进行的异步任务,可以是 Promise 或 Observable。
  • command:它是一个函数,用于封装整个操作的过程,我们可以在这个函数中进行一些额外的操作,并返回一个 effect。

下面让我们来看一个例子:

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

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

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

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

在上面的代码中,我们定义了一个 Redux 的 reducer,它拥有三种不同的行为:INCREMENTDECREMENTINCREMENT_ASYNC

INCREMENTDECREMENT 被触发时,我们会分别增加和减少计数器中的数字。

而当触发 INCREMENT_ASYNC 时,我们会进行一个异步操作(Cmd.run(fakeDelay)),该异步操作会在两秒之后将结果分发为“INCREMENT”操作的 payload。

在上面的例子中,我们并没有用到 command,因为我们不需要进行任何样板操作。

如果你想使用 command,你可以这样写:

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

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

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

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

在上面的代码中,我们使用了 Cmd.runWithInterruption,它与 Cmd.run 的区别在于,当它的前一个异步任务尚未完成时,它就会被打断。

bindActionCreators 函数

通常情况下,将 Cmd 放在 Redux 的行动中并不是一个特别方便的过程。因此,@mazechazer/redux-loop 提供了一个另外的方式来绑定 Redux 的行动:

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

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

如果有多个绑定函数,则可以像下面一样使用:

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

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

这样我们就可以在应用中方便地使用 Redux-loop。

结论

@mazecharer/redux-loop 的使用方法很简单,你可以看到我们只需关注 model、effect 和 command 三个参数就可以了。我们可以使用 loop 函数将这些参数组合在一起来实现 Redux-loop 的行动。除此之外,该库还提供了许多帮助函数,可以更加方便地在 Redux 中使用 Redux-loop。

如果你对 Redux-loop 感兴趣,那么 @mazecharer/redux-loop 绝对是一个值得尝试的选择。该库提供了丰富的功能和辅助函数来帮助你使用 Redux-loop,我们相信你一定会感觉到非常便利。

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


猜你喜欢

  • npm 包 okay-string 使用教程

    本文将详细介绍 npm 上开源的 okay-string 包的使用教程。该包提供了一系列对 JavaScript 字符串的处理函数,可以让我们更加方便、快捷地操作字符串,提高开发效率。

    3 年前
  • npm 包 react-lazy-comp 使用教程

    如果你是一名前端工程师,你一定知道 React 这个行业标准的前端框架。今天我们要讲解的是一个与 React 相关的 npm 包,它的名字是 react-lazy-comp,顾名思义,它可以帮助我们实...

    3 年前
  • npm包@growit-io/google-cloud-platform-types使用教程

    什么是@growit-io/google-cloud-platform-types @growit-io/google-cloud-platform-types是一个npm包,它提供了类型声明文件,使...

    3 年前
  • npm 包 homebridge-udpserver-multiswitch 使用教程

    本教程将介绍 npm 包 homebridge-udpserver-multiswitch 的使用方法,通过该包可以在 Homebridge 上添加多个 UDP 开关设备,方便地控制各种智能家居设备...

    3 年前
  • npm 包 functional-express 使用教程

    本篇文章将会介绍使用 npm 包 functional-express 的过程,包括安装,使用和实现原理。 简介 functional-express 是一个基于 Functional Progr...

    3 年前
  • npm包 stock-indicator-mappers 使用教程

    前言 在前端开发中,我们经常需要对股市数据进行分析和展示,并根据数据指标来作出相应的决策。在 JavaScript 库和框架中,有许多可以处理股市数据的一些工具库,其中 stock-indicator...

    3 年前
  • npm 包 twitch-music 使用教程

    在现代 Web 开发中,前端页面的交互与动态性愈来愈重要,其中音频播放也变得非常普遍。twitch-music 就是一款基于 Twitch API 接口的 npm 包,为开发者提供在 Twitch 平...

    3 年前
  • NPM 包 Hyper-Tray 使用教程

    什么是 Hyper-Tray Hyper-Tray 是一个基于 electron 和 React 开发的 npm 包,它可以将 Hyper (一款流行的终端模拟器)的窗口转换成一个系统托盘图标,并提供...

    3 年前
  • npm 包 ng2-spinner-module 使用教程

    概述 ng2-spinner-module 是一个 Angular 2+ 的组件库,包含一个加载动画组件 SpinnerComponent 和一个全局加载器服务 SpinnerService。

    3 年前
  • npm 包 bo3-cli 使用教程

    前言 bo3-cli 是一个基于 Node.js 的开发工具,通过使用 bo3-cli 可以快速搭建脚手架、生成项目文件、开发调试等,大大提高了前端开发的效率。本文将详细介绍 bo3-cli 的安装、...

    3 年前
  • NPM 包 feathers-rethinkdb-r3 使用教程

    前言 在现代 Web 开发中,前后端分离的思想已经日趋普及,前端开发的任务也变得越来越重要。其中,构建 Web 服务和 API 是前端开发中的一个重要任务。feathers-rethinkdb-r3 ...

    3 年前
  • npm 包 slush-shopify-init 使用教程

    前言 在前端开发过程中,我们通常需要根据一定的模板来完成项目搭建与开发。而 slush-shopify-init 就是一款非常方便的前端开发工具,可以帮助我们快速搭建 Shopify 主题项目。

    3 年前
  • NPM 包 str-validator 使用教程

    介绍 str-validator 是一个针对字符串的验证器,可以验证字符串是否符合指定的规则,包括长度、是否为空、是否为数字、是否为邮箱等等常用的验证方法。 在前端开发中,很多场景都需要对用户输入的字...

    3 年前
  • npm 包 slush-wordpress-init 使用教程

    随着前端技术的不断发展,越来越多的前端开发人员将目光投向了 WordPress,但是不得不说,WordPress 的环境安装和开发配置还是比较繁琐的,而 slush-wordpress-init 就是...

    3 年前
  • npm 包 react-bar-kn 使用教程

    前言 随着前端技术的不断发展,越来越多的开发者开始使用 npm 包来协助完成项目中的各种需求。在这篇文章中,我们将向各位读者介绍一个非常实用的 npm 包,即 react-bar-kn,它可以让我们轻...

    3 年前
  • npm 包 jest-preset-loopback 使用教程

    在前端开发中,测试是不可或缺的一环。jest-preset-loopback 是一个专门针对 LoopBack 应用开发的 jest 预设包,可以方便地在 LoopBack 应用中进行测试,同时该包还...

    3 年前
  • npm 包 qreact-cli 使用教程

    简介 qreact-cli 是一个基于 React 和 qiankun 的前端微服务框架,它能够快速搭建并部署一个前端微服务应用。 本教程将详细介绍如何使用 qreact-cli 来创建一个 qian...

    3 年前
  • npm 包 i-components 使用教程

    i-components 是一个基于 Vue 框架开发的组件库,提供了丰富的 UI 组件和实用的工具函数,为前端开发者提供了更多的选择和便利。通过 npm 安装 i-components,可以轻松地在...

    3 年前
  • npm 包 i-shadow 使用教程

    i-shadow 是一个优秀的前端工具库,主要用来生成和处理阴影效果的 CSS 样式代码。在前端开发中,阴影效果是一个很常见的设计元素,可以用来增强页面的层次感和美观度。

    3 年前
  • npm 包 ng2-ajax-encrypt 使用教程

    在前端开发中,许多时候我们需要对数据进行加密传输,以提高安全性。但是,对于初学者来说,加密技术可能比较高级,需要一定的技术积累和对算法的理解。为了方便开发者使用,社区就衍生出了许多工具和插件,其中一个...

    3 年前

相关推荐

    暂无文章