美文网首页
eventBus用法以及多次触发$on问题解决

eventBus用法以及多次触发$on问题解决

作者: 扶得一人醉如苏沐晨 | 来源:发表于2022-11-08 20:35 被阅读0次

    在util文件夹下面新建js文件EventBus.js

    import Vue from "vue";
    /**
     * 事件总线
     * @usage:
     * EventBus.$emit('event',payload);
     * EventBus.$on('on',(payload)=>{});
     */
    const EventBus = new Vue();
    export default EventBus;
    
    

    A组件中使用

    import EventBus from '@/util/EventBus'
    EventBus.$emit('refreshNotice')
    

    B组件中使用

    import EventBus from '@/util/EventBus'
    mounted() {
                // $on事件不会自动自动清除,导致事件出现累计,触发多次
                // 每次使用之前清除
                EventBus.$off('refreshNotice')
                EventBus.$on('refreshNotice', () => {
                this.getNoticeList()
        })
    },
    //销毁监听
    beforeDestroy() {
        EventBus.$off('refreshNotice')
    },
    

    相关文章

      网友评论

          本文标题:eventBus用法以及多次触发$on问题解决

          本文链接:https://www.haomeiwen.com/subject/jiqgtdtx.html