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);
相关推荐
来恩1003几秒前
jQuery对Ajax的支持
前端·ajax·jquery
KaMeidebaby3 分钟前
卡梅德生物技术快报|抗体的制备与纯化:分子实验实操:番茄 sHSP 重组表达与抗体的制备与纯化工艺
前端·数据库·人工智能·其他·算法·百度·新浪微博
IT_陈寒6 分钟前
Vite热更新把我整不会了,原来还要这样配!
前端·人工智能·后端
恋猫de小郭6 分钟前
AI 时代,谷歌都在 Android 官方做了哪些支持?
android·前端·flutter
zzqssliu15 分钟前
跨境独立站多端适配开发:多语言+多货币+跨平台同步技术实战
前端·javascript·php
Chengbei1116 分钟前
AI赋能Chrome MCP × JS逆向Skill自动化JS逆向助力挖洞与绕过实战(小白也能学会)
javascript·人工智能·chrome·网络安全·自动化·系统安全·安全架构
怕浪猫19 分钟前
Electron 开发实战(五):文件系统与本地数据持久化全解
前端·javascript·electron
云水一下40 分钟前
HTML5 从入门到精通:语义为王——结构标签让网页会“说话”
前端·html5
Bigger41 分钟前
mini-cc 的 Provider 抽象层是怎么设计的
前端·ai编程·claude
云水一下43 分钟前
HTML5 从入门到精通:优化与扩展——资源加载、SEO 基础与无障碍入门
前端·html5