【问题标题】:How do GraphQL & Redux work together?GraphQL 和 Redux 如何协同工作?
【发布时间】:2018-07-08 02:50:18
【问题描述】:

我想知道两者之间的关系。我很困惑,因为我认为它们几乎都是管理状态的方式,而且似乎有重叠,所以我正在寻找一个我可以应用的概念区别,以便找出哪些信息可以保存在哪里以及如何使它们工作一起。有什么建议吗?

【问题讨论】:

    标签: reactjs redux react-redux graphql flux


    【解决方案1】:

    您必须区分视图状态(例如搜索字段、弹出窗口、切换)和数据状态(例如远程 API)。而 Apollo 主要用于数据状态,而 Redux/MobX/React 的 Local State 在与 Apollo Client 结合使用时用于视图状态。如果不与 Apollo Client 一起使用,这些解决方案也可以用于远程数据状态。

    • 如果您的应用程序是纯粹的远程数据驱动并使用 GraphQL 后端,Apollo Client 对于您的应用程序就足够了。

    • 如果您的应用程序中有几个视图状态,请混合使用 React 的本地状态管理。

    • 如果您有多个或多个视图状态,请使用 Redux 或 MobX 作为您的视图状态或尝试 apollo-link-state。

    也许这篇文章更深入地澄清了一些事情:Combining Redux and Apollo

    意见:我觉得在 React Hooks 时代,Redux 和 MobX 的相关性越来越低。在这里,您可以找到有关all the state management options in React 的深入文章。

    【讨论】:

      【解决方案2】:

      GraphQL 只是告诉端点“这是我想要的数据”的一种方式。 Redux 是存储该数据的方式。从概念上讲,它们是完全独立的。

      不过,至于集成它们,我们已经成功使用 Apollo,(在他们移除 Redux 并推出自己的商店之前)。看看this的文章让你开始,然后看看阿波罗从那里去了哪里,

      【讨论】:

      • 还有graphql-normalizr,您可以使用它来规范化graphql响应数据,然后将其持久化到存储中。
      猜你喜欢
      • 2017-08-19
      • 1970-01-01
      • 2021-12-09
      • 2019-04-21
      • 2014-08-05
      • 2020-01-14
      • 2012-12-21
      • 2013-01-19
      • 2012-11-30
      相关资源
      最近更新 更多