前端通信事件:深入理解 Event Bus 与浏览器通信 API

在前端开发中,模块之间的通信是一个重要的课题。本文将从 Event Bus 的基本概念出发,介绍如何使用浏览器的通信 API 实现跨页签通信,并进一步探讨 Vue 和 React 中的通信实现原理。

什么是 Event Bus?

Event Bus 是一种基于发布-订阅模式的通信机制,常用于模块之间的解耦。它是 Node.js 各模块的基石,同时也是前端组件通信的重要手段之一。

基本用法

以下是一个简单的 Event Bus 使用示例:

const eventBus = new EventEmitter();

// 监听事件
eventBus.addListener('testEvent', (message) => {
   
   
  console.log('Received message:', message);
});

// 触发事件
eventBus.emit('testEvent', 'Hello, EventBus!');

跨浏览器页签通信

虽然 Event Bus 本身无法直接实现跨浏览器页签通信,但可以结合浏览器提供的 API 实现跨页签的事件传递。

使用 localStorage

localStoragestorage 事件可以用来监听其他页签对存储的修改,从而实现通信:

// 在一个页签中触发事件
localStorage.setItem('eventBus', JSON.stringify({
   
    type: 'testEvent', data: 'Hello from tab!' }));

// 在其他页签中监听事件
window.addEventListener('storage', (event) => {
   
   
  if (event.key === 'eventBus') {
   
   
    const 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值