这是两个兄弟组件之间的通信,但是现在<span style="font-family: 微软雅黑, Tahoma, Verdana, 宋体; font-size: 14px; background-color: rgb(255, 255, 255);">每切换一次路由, 就多调用一次$on的回调函数,$emit 传递数据 $on接受一次就多一次</span>
怎么销毁$emit中特定的数据
$emit:</span>
methods: {
getAsideSubNav(id, subId) {
App.$emit('Adp_aside_getSubNav', { 'id': id, 'subId': subId }); //派发事件
}
}
$on:</span>
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");
});
},
解决方案:</span>
在created钩子函数中,App.$on前面,调用App.$off解绑事件。</span>