我对使用商店(Vuex或Redux)感到有点困惑。 首先,我们都知道两者都是为州管理而生,我们通常在通过其他组件修改组件状态时使用它们。
然而,根据我的问题,我认为我们得到了组件A和B.情景是:
虽然其他组件需要使用B的状态,因此我们会将此状态存储在商店管理中,如果B需要使用axios
,我们还会将其作为{{1}存储在商店文件中}}。
接下来,在组件A的情况下,不需要为全局使用设置其状态,但仍需要action
使用,因此 - 我们在组件A中使用axios
- 是一种很好的做法吗?
对不起我的英语不好,我知道:(
答案 0 :(得分:1)
嗯,对于组件B来说,它相当直接。虽然您可以直接在组件中调用axios
(或任何其他数据获取模块),然后通过操作有效负载将结果传递到Store,但只要您的应用程序开始增长和/或它就会变得复杂改变。太多的模块直接了解对方是个坏主意。
我建议遵循更传统的路径:将axios
作为商店在其操作中使用的服务。这样,您的组件就可以与数据提取过程详细信息正确分开;他们只发出命令 - 动作 - 并从商店接收更新;只有商店知道如何正确执行这些命令。
现在,对于组件A,正如您所说,它的状态完全隔离,选择范围更广。我至少考虑使用与您的商店相同的axios
实例 - 因为您可能需要以与组件B相同的方式配置和调试它。例如,检查this thread。 )
尽管如此,我还是可以想到甚至数据提取也应该在组件A中被隔离的用例 - 例如,如果A更接近于整体上不同的应用程序。在这种情况下,共享数据提供者可能只会使流程复杂化。