vue中eventbus被屡次触发(vue中使用eventbus踩过的坑)【bus.$on事件被屡次绑定】

 

问题描述:只要页面没有强制刷新,存在组件切换,bus.$on方法会被屡次绑定,形成事件屡次触发php

 
触发bus.$on中绑定的方法.png
 
bus.$on屡次绑定.png

解决办法:在每次调用方法前先解绑事件( bus.$off ),而后在从新绑定( bus.$on )vue

bus.$off("backUpLevel"); bus.$on('backUpLevel', () => { if(self.ONION.length <= 1){ self.jumpSubDir() }else{ let len = self.ONION.length-1 self.jumpTeamId(self.ONION[len].id,self.ONION[len].name,self.ONION[len].type) } }) 
 
每次绑定前解绑bus.$on方法.png

解决:
看一下github上提出的。issue
https://github.com/vuejs/vue/issues/3399java

 
image.png

尤大大提出了如下解决:git

 
image.png

*就是说,这个$on事件是不会自动清楚销毁的,须要咱们手动来销毁。(不过我不太清楚这里的external bus 是什么意思,有大神能解答一下的吗,尤大大也提到若是是注册的是external bus 的时候须要清除)****github

因此。我在B组件页面中添加Bus.$off来关闭。代码以下:this

// 在B组件页面中添加如下语句,在组件beforeDestory的时候销毁。 beforeDestroy () { bus.$off('get', this.myhandle) }, 
相关文章
相关标签/搜索