问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VUE--全局事件总线&&消息订阅与发布(pubsub)

发布网友 发布时间:2022-10-15 04:39

我来回答

1个回答

热心网友 时间:2023-10-05 02:48

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

    2.安装全局事件总线:

                new Vue({

                ......

                beforeCreate(){

                    Vue.prototype.$bus = this //安装全局事件总线 $bus就是当前应用的vm

                }

                ...........

                })

    3.使用事件总线:

        (1).接收数据:A组件想接收数据。则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身

            methods(){

                demo(data){......}

            }

            mounted(){

                this.$bus.$on('xxxx',this.demo)

            }

            或

             mounted() {

                this.$bus.$on('xxxx',(data)=>{

                console.log('我是school组件,我收到了数据',data);

                })

            },

        (2).提供数据: this.$bus.$emit('xxx',数据)

    4.最好在 beforeDestroy钩子中,用$off去解构当前组件所用到的事件

            beforeDestroy(){

                this.$bus.$off('xxx')

            }

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

    2.使用步骤:

        (1).安装pubsub: npm i pubsub-js

        (2).引入:import pubsub from 'pubsub-js'

        (3).接收数据:A组件想接收数据,则在A组件中订阅消息,订阅的回调留在A组件自身

            消息订阅第一种方式

             mounted() {

                this.pubId = pubsub.subscribe('hello',(msgName,data) => {

                console.log('有人发布了hello消失,hello消失的回调执行了',msgName,data);

                 })

             },

             消息订阅第二种方式

            methods: {

               demo(msgName,data){

                console.log('有人发布了hello消失,hello消失的回调执行了',msgName,data);

                }

            },

            mounted() {

                this.pubId = pubsub.subscribe('hello',this.demo) 订阅消息

                },

            beforeDestroy(){

                 pubsub.unsubscribe(this.pubId)

              }

        (4).提供数据: pubsub.publish('hello',this.name)

        (5).最好在 beforeDestroy钩子中,用 pubsub.unsubscribe(this.pubId)取消订阅
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 楚雄代理记账:财税干货公司章程你了解多少 楚雄代理记账:双手奉上史上最强公司注册经营范围 楚雄代理记账:财税系统的集成发展财务行业的挑战 楚雄代理记账:公司要有核心竞争力财务策略很关键 楚雄代理记账:四步走破解“先票后款”财务风险 楚雄代理记账:财税干货,自己记账和财务代理记账有什么区别? 楚雄代理记账:作为会计未来的路在何方 楚雄代理记账:为你分析,到底是选择代理记账还是自己记账? 楚雄代理记账:初创者为什么要选择代理记账公司做账 楚雄代理记账:几个步骤让您明白为什么要找专业的财务公司! 婴儿0一3月喂养规律喝水规律 婴儿0一3月喂养规律考核标准 登不上,显示账号或密码错误怎么回事? 0-3月宝宝睡眠:坚持“少抱多躺不摇晃”,做到“3要3不要” 婴儿0一3月的喂养规律 婴儿0至3月喂养规律 在西瓜视频下单怎么物流流订单还是显示待发货怎么申请退货退款? 2021年春天,流行“针织裙+黑色乐福鞋”,这样穿温柔有气质 如何批量下载百度贴吧图片库图片 百度贴吧里的图片如何打包下载? 无花果和西瓜能一起吃吗 无花果和西瓜能不能一起吃 无花果和西瓜能一起吃吗 无花果和西瓜相克吗 寝室适合养的小宠物 什么宠物适合寝室养 二局物资管理人员转行能从事什么职业?改行发展前景如何? 汽车评测:本田皓影车身尺寸要比东风本田CRV大一些 子规在古代诗歌中常借以抒写悲情,在这首诗歌中所表现的是怎样一种情感? 这是什么品牌的SUV?车身比本田crv大的多。4个排气管,车身中间为香槟色上下黑色, 诗人通过对子规的描绘表达了内心怎样复杂的情感 古诗中子规常用来表达什么样的情感 如何解绑咪咕帐号绑定的手机号 口袋妖怪怎么共享经验 口袋妖怪共享经验的方法 藕杆配什么在一起炒,怎么炒 宝可梦钻石复刻经验共享吗 魔兽编辑器如何设置经验共享 这个音响只兼容苹果设备吗 苹果专用音响苹果手机和苹果平板电脑都可以放音乐吗 鲁班七号蓝牙音响只能连接苹果手机嘛 刺激战场能5人玩吗