npm 包 @beisen/channel-postmessage 使用教程

介绍

@beisen/channel-postmessage 是一款轻量级的前端通讯工具,基于 postmessage 实现跨文档通讯,适用于多个窗口之间的消息传递。

该工具的主要特点包括:支持与多个窗口通讯、支持发送和接收多种数据类型的消息、提供便捷的工具函数和配置项等。同时,该工具能够很好地解决在页面跳转或刷新后前后端消息传递的问题。

安装

使用 npm 进行安装:

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

使用方法

在需要使用的页面中引入该工具:

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

初始化

在每个窗口中都需要进行初始化,以便于建立通讯链接。初始化代码如下:

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

其中,channelName 为通讯通道的名称,必填。

options 为配置项,可选。包括如下配置:

  • isRouteMode: 是否启用路由模式,默认为 false。若为 true,则消息将被缓存,等待页面跳转或刷新后进行处理。
  • getReceiverOrigin: 获取接收者的 origin 地址,用于限制通讯范围。如果不指定,postMessage 会发送给所有窗口。

发送消息

在源窗口中使用以下代码发送消息:

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

其中,receiver 为接收者窗口对象,必传。messageTypedata 为消息类型和内容,必传。

除了基本类型数据,还可以发送复杂对象、数组、甚至文件等。示例如下:

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

接收消息

在接收者窗口中,使用以下代码监听消息:

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

其中,messageType 为消息类型,必传。callback 为回调函数,用于处理接收到的消息。

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

路由模式

启用路由模式后,页面跳转或刷新后可以自动处理缓存的消息。以下是示例代码:

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

工具函数

该工具还提供了以下便捷的工具函数:

  • postMessage.removeReceiver(receiver): 移除某个接收者。
  • postMessage.removeReceiverAll(): 移除所有接收者。
  • postMessage.sendAll(messageType, data): 向所有接收者发送消息。
  • postMessage.hasReceiver(): 判断是否存在接收者。

总结

@beisen/channel-postmessage 是一款方便使用的前端通讯工具,可以很好地解决多窗口之间的消息传递问题。在实际开发中,我们可以根据自身需求选择是否启用路由模式,并根据具体业务场景发送各种类型的消息。

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


猜你喜欢

  • npm 包 @date-io/moment 使用教程

    介绍 在前端开发中,使用时间相关的功能是非常常见的,包括日期转换、时间戳转换、时间的格式化等等。而 npm 包 @date-io/moment 就是一个方便开发者进行时间相关操作的工具。

    5 年前
  • npm 包 @4geit/rct-common-store 使用教程

    前言 在前端开发中,我们通常需要使用一些项目通用的数据存储方案。这些数据可以是页面路由、用户 token、一些特定的状态等等。为了更好地维护这些数据,我们往往会借助一些常用的工具。

    5 年前
  • npm 包 @4geit/rct-account-store 使用教程

    简介 @4geit/rct-account-store 是一个基于 React 和 Redux 实现的账户信息存储库,可以帮助开发者更方便的管理用户账户信息。本文将详细介绍如何安装和使用该 npm 包...

    5 年前
  • npm 包 @types/react-autosuggest 使用教程

    在前端开发中,经常会用到搜索提示功能。而 React Autosuggest 是一个非常好用的 React 库,能够快速地实现搜索提示功能。不过,要正确使用它,还需要安装 npm 包 @types/r...

    5 年前
  • npm 包 @fortawesome/react-fontawesome 使用教程

    前端开发中,我们常常使用图标来美化页面和增强用户体验。@fortawesome/react-fontawesome 是一个非常方便的 npm 包,它可以帮助我们轻松地在 React 应用中使用 Fon...

    5 年前
  • npm 包 @fortawesome/fontawesome-free-solid 使用教程

    介绍 @fortawesome/fontawesome-free-solid 是一款 FontAwesome 图标库的 npm 包,其中包含了非常丰富的图标资源,可以为我们的前端项目提供丰富的图标支持...

    5 年前
  • npm 包 @fortawesome/fontawesome-free-brands 使用教程

    简介 @fortawesome/fontawesome-free-brands 是一个前端开发中广泛应用的字体图标库。该库可用于在网页中添加各种品牌的图标,比如 Facebook、Twitter、Go...

    5 年前
  • npm 包 @fortawesome/fontawesome 使用教程

    随着前端开发的日趋成熟,很多新的工具和框架层出不穷。其中,FontAwesome 是一个非常流行的图标库,可通过 npm 包管理工具方便地访问。在本文中,我们将探讨如何使用 @fortawesome/...

    5 年前
  • npm 包 firebase-functions 使用教程

    Firebase 是 Google 推出的一种后端云服务,提供了许多强大的功能,例如云存储、实时数据库、认证和云函数等等。其中,云函数是 Firebase 中非常实用的功能之一,能够及时地响应用户的请...

    5 年前
  • npm 包 @1amageek/ballcap 使用教程

    前言 在前端开发中,我们经常需要对后端数据进行管理和操作。对于小型应用来说,我们可以手动进行数据操作。然而,对于大型应用,这种方法变得越来越棘手。而 npm 包 @1amageek/ballcap 就...

    5 年前
  • NPM 包 material-ui-pickers 使用教程

    前言 在前端开发中,时间处理是必不可少的。然而 JavaScript 中的默认时间选择器并不美观,不易操作,所以在很多项目中我们需要选择一个合适的时间选择器库。随着 React 生态环境的日益成熟,有...

    5 年前
  • npm包@rollup/plugin-node-resolve使用教程

    很多时候,前端开发人员需要用到一些JS库来实现他们的功能。这就要用到一种叫做打包工具的东西,来把这些库打包成一个JS文件。其中比较流行的打包工具有Webpack和Rollup。

    5 年前
  • npm 包 @rollup/plugin-commonjs 使用教程

    在前端开发中,打包工具的使用已经成为了必不可少的部分,而 Rollup.js 和 Webpack 是目前前端比较流行的打包工具。其中,Rollup.js 以打包体积小、运行速度快等优点受到了很多开发者...

    5 年前
  • npm 包 @u-wave/translate 使用教程

    概述 @u-wave/translate 是一个将文本转换为不同语言的 npm 包。它支持多种语言,并且使用起来非常简单,因此可以被广泛应用于前端开发中。 安装 使用 npm 可以很容易地安装 @u-...

    5 年前
  • npm包@u-wave/react-translate使用教程

    在前端开发中,我们经常需要进行多语言支持,为了方便快捷地实现多语言功能,npm包@u-wave/react-translate成为了一个不错的选择。本文将详细介绍如何使用这个包来实现多语言支持。

    5 年前
  • npm 包 @f/map 使用教程

    在前端开发中,数据的处理是一个非常重要的环节。有时候我们需要对复杂的数据结构进行操作,这时候就需要使用一些函数式编程的工具来辅助我们完成这些操作。其中一个非常有用的工具就是 @f/map。

    5 年前
  • NPM 包 @f/is-action 使用教程

    介绍 在前端开发中,我们常常需要判断一个事件是否为用户主动触发,例如点击按钮、输入文本等。@f/is-action 是一个轻量级的 NPM 包,它提供了一个方法 isAction 来判断一个事件是否为...

    5 年前
  • npm 包 @f/handle-actions 使用教程

    在前端开发过程中,我们经常需要处理应用程序中的操作行为,例如用户点击按钮、输入表单数据等等。使用 React 或其它类似的框架时,我们通常会使用 action(行为)和 reducer(状态变更函数)...

    5 年前
  • npm 包 @conglomerate/router 使用教程

    在前端开发中,路由是一个很重要的概念,它允许我们在应用程序中定义路由和导航,帮助用户在不同页面之间进行导航。而@conglomerate/router 就是一个强大的路由工具,它能够为您的应用程序提供...

    5 年前
  • npm 包 @conglomerate/element 使用教程

    简介 @conglomerate/element 是一个基于 Vue.js 的 UI 组件库,提供了多种常用组件来帮助开发人员快速构建 Web 应用程序。此组件库使用单个全局样式表和 CSS 变量来实...

    5 年前

相关推荐

    暂无文章