这是两个兄弟组件之间的通信,但是现在每切换一次路由, 就多调用一次$on的回调函数,$emit 传递数据 $on接受一次就多一次


怎么销毁$emit中特定的数据


$emit:

methods: {
        
        getAsideSubNav(id, subId) {
            App.$emit('Adp_aside_getSubNav', { 'id': id, 'subId': subId }); //派发事件
            
        }
        
  }


$on:

created() {
            App.$off('Adp_aside_getSubNav');
            App.$on('Adp_aside_getSubNav', (res) => {
                this.subNavList = [];
                baseData.sysmenu.forEach((node, index) => {
                    if (res.subId == -1 && res.id == node.subsetID) {

                        this.subNavList.push(node);

                    }
                    else {
                        if (node.moduleID == res.id) {
                            this.subNavList.push(node);

                        }

                    }
                });
                console.log("created");
            });

        },


解决方案:

在created钩子函数中,App.$on前面,调用App.$off解绑事件。