Vue学习笔记-消息订阅与发布(pubsub)

消息订阅与发布(pubsub)

  1. 一种组件间的通信方式,适用于任意组件间通信

  2. 使用步骤:

    1. 安装pubsub第三方库npm i pubsub-js

    2. 在组件中引入import pubsub from 'pubsub-js'

    3. 数据接收方(A组件):A组件订阅消息,并且订阅消息的回调函数留在A组件自身

    javascript 复制代码
    methods:{
    	/*
    	自定义回调函数,第一个参数为订阅的消息名称,第二个参数为消息发布方发布的数据
    	*/
    	callFun(msgName,data){
    		...
    	}
    ]
    mounted(){
    	/*订阅消息,第一个参数为自定义的消息名称,
    	第二个参数为自定义的回调函数
    	(如果写匿名函数,需要写成箭头函数,这样能保证this对象是Vue实例)
    	返回值为订阅消息的id,将其赋给Vue实例,方便以后销毁
    	*/
    	this.pubid = pubsub.subscribe('msgName',this.callFun)
    },
    beforeDestory(){
    	//建议在组件销毁时取消订阅
    	pubsub.unsubscribe(this.pubid)
    }
    1. 数据传递方(B组件):B组件发布消息-->在需要传递数据的函数中添加如下代码:
    javascript 复制代码
    pubsub.publish('msgName',data)
相关推荐
用户51681661458414 分钟前
Vue Router 路由懒加载引发的生产页面白屏问题
vue.js·vue-router
前端缘梦4 分钟前
Vue Keep-Alive 组件详解:优化性能与保留组件状态的终极指南
前端·vue.js·面试
Simon_He16 分钟前
这次来点狠的:用 Vue 3 把 AI 的“碎片 Markdown”渲染得又快又稳(Monaco 实时更新 + Mermaid 渐进绘图)
前端·vue.js·markdown
王同学QaQ5 小时前
Vue3对接UE,通过MQTT完成通讯
javascript·vue.js
华仔啊6 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端
艾小码7 小时前
告别Vue混入的坑!Composition API让我效率翻倍的3个秘密
前端·javascript·vue.js
Gracemark1 天前
高德地图-地图选择经纬度问题【使用输入提示-使用Autocomplete进行联想输入】(复盘)
vue.js
天下无贼1 天前
【手写组件】 Vue3 + Uniapp 手写一个高颜值日历组件(含跨月补全+今日高亮+选中状态)
前端·vue.js
洋葱头_1 天前
vue3项目不支持低版本的android,如何做兼容
前端·vue.js
奔跑的蜗牛ing1 天前
Vue3 + Element Plus 输入框省略号插件:零侵入式全局解决方案
vue.js·typescript·前端工程化