【发布时间】:2019-07-19 06:49:57
【问题描述】:
我有两个没有父子关系的组件。它们彼此不相关。但我正在努力做到这一点,以便当一个组件发出事件时,另一个组件可以侦听该事件并执行操作。
这是一个例子,假设我有一个名为“reset-component”的组件,在某些时候它会发出一个名为“reset”的事件。
<reset-component @reset="actionReset" />
我还有一个“grid-component”,它应该监听“reset-component”发出的“reset”动作并执行一些动作。
<grid-component />
我有哪些选择可以做到这一点?我能想到的唯一解决方案是使用 EventBus 发出一个全局事件,然后让网格组件监听该全局事件。但这是个好主意吗?这不是更多的反模式吗?
// Reset component
EventBus.$emit('reset')
// Grid component
created()
{
EventBus.$on('reset', () => {
doSomething()
})
}
【问题讨论】:
-
考虑使用 Vuex(全局状态管理器)来避免此类问题
标签: javascript vue.js vue-component