【发布时间】:2021-02-03 21:06:06
【问题描述】:
我很难理解如何正确使用 Vuex,如果我什至应该在我的情况下使用它。
假设我用组件构建了简单的在线商店:
- 产品列表。
- 产品过滤。
没有 Vuex:
我可以将过滤作为子组件,将列表作为父组件。在 List 中获取异步数据,然后将其作为 prop(或 v-model)传递给 Filtering。然后它可以通过 $emit 传回过滤后的产品。而且效果很好。
使用 Vuex:
使用模块产品制作 Vuex 商店。里面包含了从 API 获取产品并过滤它的所有逻辑。 现在组件列表和过滤可以分开。在它们内部使用来自商店的 getter/actions 和 Products 模块。 它会正常工作。
我理解正确吗?
但是有问题:
假设我想在其他地方使用 Products API,例如显示几个推荐的产品。 没有 Vuex 会很简单。只需制作单独的组件来获取推荐的数据。
但如果我理解正确的话,使用 Vuex 的主要目的是在全球范围内共享数据。那么我怎样才能从同一个 Vuex 模块中获得两个单独的列表呢?因此,当用户在过滤器中选择某些内容时,它应该只过滤主列表,而不是推荐产品。
【问题讨论】: