vue中 使用公共实例 组件之间传递数据 $on 多次触发

2018-10-03 18:49
椰子皮
2549
0
5
vue

这是两个兄弟组件之间的通信,但是现在<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>

支付宝微信
5
关注公众号获取更多内容
net start MongoDB 服务名无效错误解决办法
结合lazyload实现文章页里面的图片预加载
暂无评论,快抢沙发吧
不支持canvas
春季
夏季
秋季
冬季
暗黑
简约
小清新