npm 包 pusher-redux-plus 使用教程

前言

在前端应用开发中,推送服务是一个必不可少的工具。而推送服务中最常见的问题是如何将推送数据与应用程序的状态同步,以确保应用程序始终显示最新的数据。Redux 是一个流行的 JavaScript 应用程序状态管理库,可以很好地解决这个问题。本文将介绍一个名为 pusher-redux-plus 的 npm 包,它是使用 Redux 与 Pusher 集成的最简单和最有效的方法之一。

关于 Pusher

Pusher 是一个实时的、跨平台的 WebSocket 通信服务。这个服务提供了实时事件和数据的推送,使得前端和后端之间的通信变得更加容易和流畅。Pusher 和已经成为事实上标准的 Socket.io 非常相似,但是 Pusher 提供了更多的可扩展性,更多的功能以及更高的性能。在本文中,我们将介绍如何使用 pusher-redux-plus 套件将 Pusher 集成到 Redux 应用中。

安装与使用

安装

要使用 pusher-redux-plus,需要先安装它。可以通过 npm 包管理器进行安装。使用以下命令:

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

配置

在使用 pusher-redux-plus 之前,您需要设置一个 Pusher 帐户。请参阅 Pusher 文档以获取更多信息。

接下来,您需要配置 pusher-redux-plus。pusher-redux-plus 提供了一个名为 configurePusherStore 的函数,该函数可以用来配置您的应用程序和 Pusher。可以按照以下方式配置此函数:

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

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

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

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

在此示例中,我们声明了 Pusher 客户端并将其语义化与推出值传递给 configurePusherStore 函数,然后通过导出配置实例进行引用。此函数需要提供以下参数:

  • Pusher:从 pusher-js 导入的客户端类。
  • client:使用 Pusher 构造函数创建的实例。

在此处,我们还为 Pusher 客户端提供了一个 authEndpoint 和 JWT Token,以使 Pusher 可以配置身份验证。

创建 Actions

在使用 Redux 与 Pusher 配对时,最重要的方面是创建 actions。Actions 是在应用程序中创建更改的方式。

pusher-redux-plus 为 Redux 应用中使用的每个 Pusher 频道创建了两个 actions。分别为 PRESENCE_CHANNEL_SUCCEEDED 和 PRESENCE_CHANNEL_FAILED。如果 pusher-redux-plus 中有以下推送器侦听者,则会触发这些 actions:

  • onMembersChange:当频道中的成员数量发生变化时触发
  • onMemberAdded:每当频道中的成员添加时触发
  • onMemberRemoved:当频道中的成员被删除时触发

可以通过以下方式创建 action:

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

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

在每个 actions 中,除了传递 type 属性之外,还需传递必要的参数以完成对应的操作。

创建 Reducers

在创建 actions 后,我们需要创建 reducers。Reducers 帮助管理 state。

在 pusher-redux-plus 中,我们只需要创建一个 reducer。可以按照以下方式创建一个 reducer:

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

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

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

在此 reducer 中,将应用程序的状态存储为对象。此对象只有一个成员,即 members。 当我们创建 actions 时,pusherPresenceChannelSucceeded actions 会根据各自的成员更新 state。另一方面,当 PRESENCE_CHANNEL_FAILED 触发此函数时,它将清除 state 中的所有成员。

创建 Middleware

现在,我们需要将初始化的 events 注册到 middleware 中。Middleware 可以拦截 actions 并对它们进行处理。可以按照以下方式创建一个 middleware:

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

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

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

此外,我们需要为 reducers 和 middleware 提供默认导出,以在使用时进行引用。

使用

现在,pusher-redux-plus 已经被设置并配置并且 actions、reducers 和 middleware 中也已定义。那么,如何在我们的应用程序中使用这一切呢?首先,将 redux createStore 添加到应用程序,并将您的 middleware 添加到 createStore 中:

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

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

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

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

在此示例中,我们使用 combineReducers 将所有 reducers 捆绑到一个 reducer 层级中,并在后续中将其命名为状态属性名。接下来,我们将 onPressedChannel 并 pusherPresenceChannelReducer 作为 middleware 设置添加到 redux createStore 中。在此随后,我们可以在代码的任何部分读取 state:

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

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

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

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

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

这个示例是使用 Redux 和 React 从应用程序注册的 presence-channel 接收更新推送的最基本的示例。在 mapStateToProps 函数中,我们获取更新的 state。在此更改时,我们可以在 App 中直接使用这些参数。

总结

在本文中,我们介绍了 pusher-redux-plus,该套件可以使 Redux 应用程序中的 Pusher 配对变得轻松和更有效。通过按照本教程所述的步骤,您可以在几分钟内将 Pusher 集成到您的应用程序中。pusher-redux-plus 套件提供了非常实用的工具,让我们在应用程序开发时更加高效,简单,并提高了生产力。

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


猜你喜欢

  • npm 包 mongoose-tree-materialized 使用教程

    简介 mongoose-tree-materialized 是一个基于 mongoose ORM 进行开发的树形结构查询框架。这个框架使用了 Materialized Paths(材料化路径)这种数据...

    2 年前
  • npm 包 with-backbone 使用教程

    什么是 with-backbone with-backbone 是一个 npm 包,它为开发者提供了一个用于构建基于 Backbone.js 的前端项目的快速开发框架。

    2 年前
  • npm包modular-json使用教程

    前言 在前端开发中,常常需要处理 JSON 数据,如果数据结构比较复杂,传统的 JSON 解析方式会变得比较繁琐,而 npm 包 modular-json 可以帮助我们更便捷地处理 JSON 数据,本...

    2 年前
  • npm 包 nconf-pro 使用教程

    npm 包 nconf-pro 使用教程 在前端开发中,我们通常需要使用不同的配置信息来控制我们的应用程序的行为。因此,为了更好的管理和使用配置信息,我们可以使用 npm 包 nconf-pro。

    2 年前
  • npm 包 react-modal-dream-ui 使用教程

    在现今互联网技术时代,前端开发已经成为了至关重要的一个职业。而作为一名前端开发人员,使用 npm 包使代码变得相当简单。npm 是一个 JavaScript 包管理器,它允许用户以开放包格式共享代码和...

    2 年前
  • npm 包 paessler-iconfont 使用教程

    #npm 包 paessler-iconfont 使用教程 ##介绍 paessler-iconfont 是一款简便易用的 npm 包,它提供了 4000 多个图标供我们进行使用,这些图标可用于我们的...

    2 年前
  • npm 包 node-osx-mediacontrol 使用教程

    Node.js 是一个非常流行的 JavaScript 运行时环境,广受前端开发者的喜爱。而 npm 则是 Node.js 生态圈中的包管理工具,用于管理和分享 JavaScript 包。

    2 年前
  • npm 包 eq-express-middleware-acl 使用教程

    前言 在开发 Web 应用程序时,往往需要对用户权限进行管理和控制。而 eq-express-middleware-acl 是一个基于 Node.js 的中间件,可以帮助我们在 Express 应用程...

    2 年前
  • npm 包 room-cli 使用教程

    介绍 room-cli 是一个基于 Node.js 的命令行工具,可以让前端开发者通过命令行快速创建项目,管理依赖包等。通过使用 room-cli,可以提高前端项目的开发效率和可维护性。

    2 年前
  • npm 包 haierplugin 使用教程

    介绍 Haierplugin 是一个面向海尔企业级开发的 npm 包,提供了一系列的组件和工具,帮助前端开发者快速构建优秀的海尔企业级应用。该技术文章旨在向前端开发者详细介绍该工具的使用方法,并提供示...

    2 年前
  • npm 包 matchr 使用教程

    简介 matchr 是一个简单的字符串匹配工具,支持使用通配符进行模糊匹配,可以快速搜索、筛选和处理字符串集合。 在前端开发过程中,经常需要对字符串进行比较和判断,而 matchr 则提供了一个快速、...

    2 年前
  • npm 包 oxygenflow 使用教程

    在前端开发中,包管理器是必不可少的工具。而目前最流行的包管理器就是 npm。它可以轻松地安装和管理开源软件包。 oxygenflow 是一款基于 npm 包的工具,提供前端开发中常用的函数和插件,使用...

    2 年前
  • npm 包 socketio-jwt-configurable 使用教程

    在前端开发中,Socket.IO 是一个常用的实时通信库。而 JWT(JSON Web Token)则是一种安全的身份验证方式。socketio-jwt-configurable 是一款用于 Sock...

    2 年前
  • npm 包 ng2-jwtauth 使用教程

    随着前端技术的迅速发展,越来越多的应用程序开始采用前后端分离的架构。而在这种架构下,前端应用程序所需要的鉴权和权限验证功能就变得尤为重要。而 ng2-jwtauth 就是一款针对 Angular2 应...

    2 年前
  • npm 包 postcss-var 使用教程

    在前端开发中,CSS 变量经常被用来管理全局样式。然而,CSS 变量并不支持动态计算和嵌套引用等高级特性。为了解决这些问题,postcss-var 库应运而生。本文将详细介绍 npm 包 postcs...

    2 年前
  • npm 包 cloud-logger 使用教程

    在前端开发中,往往需要对日志进行管理和分析,以便于快速定位和解决问题。而 npm 包 cloud-logger 则是一个可以帮助我们实现日志管理和分析的工具。 安装和使用 首先,我们需要在项目中通过 ...

    2 年前
  • npm 包 @njakob/cli-utils 使用教程

    在开发过程中,我们常常需要使用一些工具来提高效率。其中,命令行工具是必不可少的一部分。@njakob/cli-utils 就是一个非常实用的命令行工具库,它为开发者提供了一些常用的命令行工具函数和模板...

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

    在前端开发中,国际化是一个常见的需求。deskbookers-react-intl 是一个方便、易用的 npm 包,用于在 React 项目中实现国际化。 目录 安装 使用 进阶用法 批量导入多个语...

    2 年前
  • npm 包 node-red-contrib-openplc 使用教程

    Node-RED 是一个流程编程工具,它可以让前端开发者更加高效地编写可重用的代码。而 node-red-contrib-openplc 这个 npm 包则为 Node-RED 赋予了发送和接收数据到...

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

    什么是 generator-vueyo generator-vueyo 是一个用于生成 Vue.js 项目脚手架的 Yeoman generator,其中包含了一些对 Vue.js 开发非常有用的工具...

    2 年前

相关推荐

    暂无文章