vue.js - vue 多次发出一次
问题描述
我在我的网页上使用 Vue,然后我使用 eventBus 将数据组件传递给其他组件。
我想知道,
在兄弟组件之间使用 eventBus 传递数据是一种不好的模式。
eventBus.$emit 一次,eventBus.$on 在多个组件上。
我发现了一些在亲子情况下需要通过道具传递的文章。
另外,我找不到关于 mutitle “on” 的情况。
这是示例架构。
- 仪表板
- 组件1
- 组件2
仪表板包含组件 1 和 2
案例1。
传递数据 component1 -> component2 以使用 eventBus 是好的模式吗?
案例2。
在仪表板上,我发出 eventBus.$emit('update', some data)
然后,
在组件 1,2 我用 eventBus.$on('update', (data) => ... ) 监听事件
这个图案是好图案吗?
解决方案
您可以使用 Vuex 做任何事情,这将是一个更简洁的解决方案,因为在您的存储中,您将更加了解您的数据流。
在情况 1 中,您可以提交一个突变,然后在所有需要的地方观察变化或更好,只需使用计算值。EventBus 是不错的模式,但我认为它更适合大型分布式项目,你真的想传播事件,而不仅仅是传递数据更新。
对于案例 2,除了 Vue,你不需要任何东西。只需传递参数并在子组件中观察它们。
推荐阅读
- windows - Good practice GCE + Windows: computer name
- ruby-on-rails - Travis 配置条件环境变量
- css - 这是正确的 bem 命名吗?
- python - 使用 Python 提取 xml 数据
- javascript - Google Recaptcha v3 错误:“超时或重复”
- r - 加载数据时的进度条
- openstreetmap - 如何设置两国之间的路由?加载两个“*-gh”文件夹
- ruby-on-rails - 当其他属性发生变化时如何更新一个属性
- regex - Detect a specific pattern inside a url /us-en/ to something else
- delphi - Delphi 文档在 abort 和 Abort 之间有所不同 - 它是 doc 中的错误还是 Delphi 区分大小写?