我们都知道在vue中兄弟组件传参可以使用$bus来进行
1.在组件A中:
this.$Bus.$emit('test', '1111')
2.在A组件的兄弟组件B组件Mounted中:
this.$Bus.$on('test', str => {
....
})
在最近的项目中我遇到了一个问题,A组件发射了一次,但是B组件重新渲染后却接收了两次,这是为什么呢?
其实就是类似Js的原生事件绑定,this. B u s . Bus. Bus.on进行了追加绑定而非覆盖,所以每次用之前最好
this.$Bus.$off('test')
this.$Bus.$on('test', str => {
...
})
希望我的记录对大家有所帮助,记得点个赞支持一下小编!!!