跳到主要内容

Vue Event bus 使用案例

· 阅读需 1 分钟
素明诚
Full stack development

假设我们有两个组件:一个是父组件 Parent,一个是子组件 Child。我们希望在 Child 中触发一个事件,然后在 Parent 中监听这个事件并进行处理。这时我们可以使用 Event bus 来实现:

首先在 main.js 中创建一个全局的 Event bus:

Vue.prototype.$eventBus = new Vue()

接着在 Child 组件中触发事件:

methods: {
handleClick() {
this.$eventBus.$emit('myEvent', 'hello')
}
}

这里我们使用 $emit 方法来触发一个名为 myEvent 的事件,并传递一个参数 'hello'

最后在 Parent 组件中监听事件并进行处理:

 created() {
this.$eventBus.$on('myEvent', (message) => {
console.log(message)
})
}

这里我们使用 $on 方法来监听名为 myEvent 的事件,并在回调函数中输出传递的参数。

通过这种方式,我们可以实现跨组件通信,将数据从一个组件传递到另一个组件。需要注意的是,Event bus 作为全局对象,可能会导致代码难以维护和调试,因此需要谨慎使用。