组件之间使用this.$bus.$on传值之前需要先this.$bus.$off注销事件
this.$bus是全局变量
a、b是两个父组件,c是子组件。
c(子组件)页面触发事件:
this.$bus.$emit(event)
a、b(父组件)页面监听c组件的事件
this.$bus.$on(event, () => {
this.status = 'reserve'
})
this.$bus.$on(event, () => {
this.status = 'buying'
})
如果在调用了a页面之后,再调用b页面,回导致this.status是reserve而不是我们想要的buying
正确写法:
this.$bus.$off(event).$on(event, () => {
this.status = 'reserve'
})
this.$bus.$off(event).$on(event, () => {
this.status = 'buying'
})
本文详细介绍了在Vue项目中如何正确使用全局事件总线(this.$bus)进行组件间通信,避免因事件监听未及时注销导致的数据状态混乱。通过具体示例说明了在不同父组件间切换时,如何确保子组件触发的事件能准确地被当前活动的父组件捕获。
1141

被折叠的 条评论
为什么被折叠?



