【问题标题】:Should we use axios inside both components and store?我们应该在组件和存储中都使用 axios 吗?
【发布时间】:2018-04-20 09:30:03
【问题描述】:

我对使用 store(Vuex 或 Redux)有点困惑。 首先,我们都知道两者都是为状态管理而生的,我们通常在通过其他组件修改组件状态的情况下使用它们。

但是,根据我的问题,我认为我们得到了组件 A 和 B。场景是:

    1234563 1234563 ?

对不起,我的英语不好,我知道 :(

【问题讨论】:

  • 是的 - 如果组件 A 的 OWN 状态从未在该组件之外使用,那么在它内部进行调用就可以了,但这有点违背了拥有像 Redux 这样的状态管理器的目的。我个人只是为了能够跟踪和调试我的所有操作而将其连接到 Redux,但这只是我个人。
  • @SpencerBigum 感谢您的回复。这就是我想知道的,因为我认为仅使用动作有点复杂。不过,我会考虑你的想法!

标签: reactjs vue.js redux axios vuex


【解决方案1】:

嗯,对于组件 B,它相当简单。虽然您可以直接在组件中调用 axios(或任何其他数据获取模块),然后通过操作负载将结果传递到 Store,但只要您的应用程序开始增长和/或更改,它就会变得复杂。太多的模块直接相互了解是个坏主意。

我建议遵循更传统的路径:在其操作中将 axios 设为 Store 使用的服务。这样,您的组件就可以与数据获取过程细节正确分离;他们只发出命令 - 操作 - 并从 Store 接收更新;只有 Store 知道如何正确执行这些命令。


现在,对于组件 A,正如您所说,它的状态完全隔离,选择范围更广。我至少会考虑使用与您的 Store 相同的 axios 实例 - 因为您可能需要以与组件 B 案例相同的方式对其进行配置和调试。例如检查this thread。 )

不过,当组件 A 中甚至数据获取也应该被隔离时,我仍然可以想到用例 - 例如,如果 A 更接近于整体上是一个不同的应用程序。在这种情况下,共享数据提供者可能只会使流程复杂化。

【讨论】:

  • 感谢您的回复,我这几天忙着回复。先说对不起。我的意见和你的一样。如果我们对 A 使用相同的组件 B 模式,它会让我们的应用程序现在有更多的工作要做。毫无疑问,对 A 应用 B 的方法可以帮助我们以一种方式对所有组件进行调试,但正如我所说,还有更多工作要做。
猜你喜欢
  • 1970-01-01
  • 2019-07-22
  • 2012-01-16
  • 2020-01-14
  • 1970-01-01
  • 2018-02-12
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多