npm 包 redux-effects-nes 使用教程

简介

redux-effects-nes 是一个基于 Redux 框架的中间件,用于实现在浏览器和服务器之间实时通信的需求。它自带了多种实现方式,包括 WebSocket、SSE 等等。

安装

使用 npm 或 yarn 进行安装即可:

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

- --

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

基础使用

首先,我们需要在创建 store 时引入中间件。在这个案例中,我们使用了 createStore 函数进行创建。

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

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

接下来,在需要使用 Redux 的组件中,我们可以使用 bindNesActions 函数将我们需要的动作绑定到组件的 props 上。

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

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

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

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

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

为了让这个案例更加直观,我们需要在组件中使用一个按钮或者其他的 UI 元素来触发该动作。

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

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

到这里,我们就完成了 redux-effects-nes 中间件的最基础使用啦!

进阶使用

在上面的案例中,我们已经实现了使用 redux-effects-nes 中间件来进行 WebSocket 通信的基础用法。这里,我们将介绍一些进阶使用方式和技巧。

自定义 WebSocket 地址

我们在有些场景中可能需要自己指定 WebSocket 的地址。此时,我们可以在 bindNesActions 函数的第二个参数中传入一个配置对象。

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

自定义 initialState

有的时候,我们需要在应用刚刚加载时就获取一些实时数据。此时,我们可以将 initialState 中的数据作为 WebSocket 连接建立前的默认值。

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

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

多实例连接

在特定场景下,我们可能需要连接到多个不同的 WebSocket 实例。此时,我们可以用 nes 实例的 ID 来进行区分。

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

动态连接

在不同的场景下,我们需要动态地连接到不同的 WebSocket 地址上。此时,我们可以使用 createWebSocketConnect 函数来创建一个 WebSocket 连接的代理函数。

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

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

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

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

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

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

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

在这段代码中,我们首先调用了 createWebSocketConnect 函数来创建一个动态连接的代理函数。它会根据传入的 props 对象来动态地创建 WebSocket 连接。接下来,在 handleClick 函数中,我们使用这个代理函数来创建 WebSocket 连接,同时指定了使用的自定义协议。这样,在 WebSocket 通信时,WebSocket 连接就会使用这里指定的协议。

示例代码

为了方便大家理解 redux-effects-nes 中间件的使用方法,我们这里提供一个完整的示例代码。

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

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

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

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

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

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

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

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

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

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

总结

redux-effects-nes 是一个很好用的中间件,可以用于在浏览器和服务器之间实现实时通信的需求。通过本文的介绍,您应该已经掌握了它的基本用法和一些进阶技巧。希望本文对您有所帮助,谢谢您的阅读。

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


猜你喜欢

  • npm 包 discovery-cli 使用教程

    什么是 discovery-cli? discovery-cli 是一款用于搜索 npm 包的命令行工具。它可以帮助开发者发现新的 npm 包,也可以用于搜索已知的 npm 包信息。

    3 年前
  • npm 包 @tektite/angular2-jsonapi 使用教程

    简介 在前端开发过程中,处理和管理数据是非常重要的一项工作。而 Jsonapi 是一种规范,它定义了 HTTP API 与 JSON 数据交互方式的标准。在 Angular2+ 中,我们可以使用 @t...

    3 年前
  • npm 包 eslint-plugin-email-css-rules 使用教程

    随着互联网的发展,邮件是企业和个人之间通信的重要途径之一。邮件的内容和排版也越来越重视,因此邮件的开发与测试变得越来越重要。为了帮助邮件的开发者更好地进行代码开发和测试,本文介绍了一个名为 eslin...

    3 年前
  • npm 包 globee-rest 使用教程

    在前端开发过程中,我们经常需要访问第三方 API 来获取数据。然而,不同的 API 提供商使用不同的接口协议和数据格式,这导致我们需要写很多重复的代码来访问这些 API。

    3 年前
  • npm包 @ngbelatrix/tooltip 使用教程

    简介 @ngbelatrix/tooltip 是一个 Angular 指令,用于创建具有提示消息的工具提示元素。npm包提供了轻松添加工具提示的方式,并且可以轻松自定义这些提示。

    3 年前
  • npm 包 kuzzle-backoffice 使用教程

    Kuzzle-backoffice 是一个基于 KuzzleJS 编写的管理 Kuzzle 实例的 Web 应用程序。通过 Kuzzle-backoffice,您可以查看和管理 Kuzzle 索引、收...

    3 年前
  • npm 包 mozaik-ext-app-insights-rest-api 使用教程

    介绍 mozaik-ext-app-insights-rest-api 是一款 NPM 包,它提供了一个能够与 Azure Application Insights API 交互的 Mozaik 扩展...

    3 年前
  • npm 包 n9-angular2-session 使用教程

    前言 随着前端技术的稳步发展,越来越多的网站开始采用前后端分离的架构,前端与后端之间通过API接口进行通信。用户的登录状态以及其他与用户相关的数据就需要通过API接口传递。

    3 年前
  • npm 包 mstdn 使用教程

    在前端开发中,有许多重复性的工作需要我们去完成。有时我们需要一些已经现成的工具,比如 mstdn,它能够帮助我们方便地操作 Mastodon API,从而更加高效完成开发工作。

    3 年前
  • npm 包 xtagcloud 使用教程

    在前端开发中,我们经常需要使用到词云(Word Cloud)来展示词频、关键词等信息。xtagcloud 是一款基于 d3.js 的词云生成器,采用 SVG 技术实现,支持颜色、字体大小、旋转角度等自...

    3 年前
  • npm 包 vkapi-lib 使用教程

    vkapi-lib 是一个用于访问 VK 社交网络 API 的 Node.js 模块。它提供了简单易用的接口,让您能够轻松地访问 VK API 并获取所需要的数据。

    3 年前
  • npm 包 phaser-ui 使用教程

    简介 Phaser 是一款 HTML5 游戏框架,它提供了丰富的游戏开发工具和 API。Phaser UI 则是一个由社区提供的 UI 插件库,可以使用它来方便地创建游戏 UI 界面。

    3 年前
  • npm 包 applescript-promise 使用教程

    如果你在 macOS 系统下开发前端应用,并且需要使用 AppleScript,那么你肯定想找到一种便捷的方式来执行相关命令。在这篇文章中,我们将会介绍如何使用 npm 包 applescript-p...

    3 年前
  • npm 包 storage-ttl 使用教程

    在前端开发中,我们经常需要在浏览器的本地存储中保存数据,以便下次访问时能够快速获取。然而,这些数据有时候需要在一定的时间内失效,而传统的 localStorage 和 sessionStorage 无...

    3 年前
  • npm 包 newsha 使用教程

    什么是 newsha? newsha 是一个 npm 包,它可以帮助前端开发人员快速地创建一个新的项目模板,避免从头开始创建项目时浪费时间。 newsha 由 JavaScript 编写,它使用了一些...

    3 年前
  • npm 包 clampdown 使用教程

    clampdown 是一款基于 JavaScript 的 npm 包,用于格式化 HTML 文档并防止 XSS 攻击。它通过移除或转义 HTML 标签和属性来预处理输入的 HTML,从而降低代码中存在...

    3 年前
  • npm 包 ntroot-test-repo 使用教程

    在前端开发中,我们经常需要使用第三方库来构建应用程序。npm 作为前端最大的包管理器之一,提供了无数可靠的工具和库。在本文中,我们将讨论 npm 包 ntroot-test-repo 的使用方式。

    3 年前
  • npm 包 thorazine-grid 使用教程

    介绍 thorazine-grid 是一个基于 CSS Grid 布局的响应式网格系统,它可以帮助开发者快速构建具有丰富布局的网站和应用程序。使用 thorazine-grid,你可以非常方便地调整网...

    3 年前
  • npm 包 chronos-sdk 使用教程

    简介 chronos-sdk 是一个用于构建时间和日期相关应用的 Node.js 包。它提供了各种时间和日期操作函数,如将时间转换为不同的格式、计算时间差、解析日期字符串等等。

    3 年前
  • npm 包 aws-lambda-middlewares 使用教程

    在 AWS Lambda 开发中,使用中间件可以更方便地处理请求和响应。aws-lambda-middlewares 是一个优秀的 Lambda 中间件库,它提供了多种可以用于 Lambda 函数的中...

    3 年前

相关推荐

    暂无文章