vue通过BroadcastChannel实现不同标签页直接传递消息

crossTagMsg.js

复制代码
const channel = new BroadcastChannel('demo');

export function sendMsg(type, content){
    channel.postMessage({
        type,
        content,
    });
}

export function listenMsg(callback){
    const handler = (e) => {
        callback && callback(e.data);
    }
    channel.addEventListener('message', handler);
    return() => {
        channel.removeEventListener('message', handler);
    };
}

A.vue发送消息页面

复制代码
import {listenMsg} from '@/utils/crossTagMsg'

function update(){
	sendMsg("更新", "dddd")
}

B.vue监听消息页面

复制代码
import {listenMsg} from '@/utils/crossTagMsg'

//监听消息
const cancelListen = listenMsg((msgInfo) => {
  console.log('监听到了更新', msgInfo)
})
//组件销毁时移除监听
onBeforeUnmount(cancelListen);
相关推荐
2601_949816163 分钟前
Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
前端·npm·node.js
2601_949194265 分钟前
TypeScript 与后端开发Node.js
javascript·typescript·node.js
前端那点事11 分钟前
Vue3 defineModel 完全不破坏单向数据流!底层原理+实战解析
vue.js
pancakenut16 分钟前
自定义属性:从html到react
前端
hmh1234516 分钟前
录音与音频可视化
前端·javascript
ZC跨境爬虫33 分钟前
3D 地球卫星轨道可视化平台开发 Day13(卫星可视化交互优化+丝滑悬停聚焦)
前端·算法·3d·json·交互
qq_4198540540 分钟前
animation 和 transition
前端
weixin1997010801640 分钟前
《孔夫子旧书网商品详情页前端性能优化实战》
前端·性能优化
spring2997921 小时前
SpringBoot返回文件让前端下载的几种方式
前端·spring boot·后端
阿丰资源1 小时前
Java项目基于SpringBoot+Vue前后端分离在线商城系统(附源码)
java·vue.js·spring boot