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);
相关推荐
代码猎人1 分钟前
前端怎么优化项目基础架构
前端
__sjfzllv___9 分钟前
在职前端Leader学习/转行 AI Agent -DAY78
前端
代码猎人10 分钟前
前端怎么封装工具类
前端
deli00713 分钟前
PDF 合并别再用在线工具:12 份文件浏览器里合完,实测不上传
前端
shuoshuohaohao13 分钟前
SpringBoot3-web开发-静态资源-内容协商
前端
特立独行的猫A14 分钟前
仓颉UI开发实战:我用仓颉写了个桌面版力扣:从判题机到 100 道题
vue.js
kiros_wang16 分钟前
RDB关系数据库实战:增删改查、事务、分页、版本迁移
前端
用户17335980753717 分钟前
纯前端 PDF 双面打印避坑指南:翻页顺序错了整个白印?
前端·javascript·vue.js
庖丁解牛18 分钟前
第四课:循环,让电脑重复做事(4)
前端
数据掘金20 分钟前
用户路径分析的会话切分与节点聚合实现
前端