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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VUE--全局事件总线&&消息订阅与发布(pubsub)相关的知识,希望对你有一定的参考价值。

参考技术A     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)取消订阅

以上是关于VUE--全局事件总线&&消息订阅与发布(pubsub)的主要内容,如果未能解决你的问题,请参考以下文章

Vue组件间通信 全局事件总线订阅与发布

vue的全局事件总线

Vue父子组件间通信(数据传递)

Vue2 EventBus事件总线 | 实现组件间的通信&改变大屏背景颜色实践

vue进阶知识总结

vue进阶知识总结