首页 > 解决方案 > vue 多次发出一次

问题描述

我在我的网页上使用 Vue,然后我使用 eventBus 将数据组件传递给其他组件。

我想知道,

  1. 在兄弟组件之间使用 eventBus 传递数据是一种不好的模式。

  2. eventBus.$emit 一次,eventBus.$on 在多个组件上。

我发现了一些在亲子情况下需要通过道具传递的文章。

另外,我找不到关于 mutitle “on” 的情况。

这是示例架构。

仪表板包含组件 1 和 2

案例1。

传递数据 component1 -> component2 以使用 eventBus 是好的模式吗?

案例2。

在仪表板上,我发出 eventBus.$emit('update', some data)

然后,

在组件 1,2 我用 eventBus.$on('update', (data) => ... ) 监听事件

这个图案是好图案吗?

标签: vue.jsvuex

解决方案


您可以使用 Vuex 做任何事情,这将是一个更简洁的解决方案,因为在您的存储中,您将更加了解您的数据流。

在情况 1 中,您可以提交一个突变,然后在所有需要的地方观察变化或更好,只需使用计算值。EventBus 是不错的模式,但我认为它更适合大型分布式项目,你真的想传播事件,而不仅仅是传递数据更新。

对于案例 2,除了 Vue,你不需要任何东西。只需传递参数并在子组件中观察它们。


推荐阅读