如何将 redux 与 graphql 结合使用

Bye*_*oon 4 apollo graphql redux

我喜欢 graphql。因为它只有一个端点,我只能提取我需要的数据。

所以我使用 apollo-server 作为服务器,使用 apollo-client 作为客户端。

从 apollo-client 3.0 开始,支持状态管理。

apollo-client的reactive变量功能很方便,但我更喜欢redux。

Redux工具包还缩短了需要编写的代码长度。

问题是这样的。

  1. apollo-client 3.0 和 redux 不能一起使用吗?

  2. 我不能在 redux 上只使用 graphql 而不使用 apollo-client 吗?那么如何呢?

请检查!

mar*_*son 8

重要的是要理解GraphQL 只是一个用于描述请求和响应的协议。然而,是的,“我正在使用 GraphQL”通常也意味着使用 Apollo 或 Urql 等智能客户端库。

当然可以在同一个应用程序中使用 Apollo 和 Redux,但问题是你将它们分别用于什么用途。我在我的文章《何时(何时)不使用 Redux》《Redux - 尚未死亡!》中对此进行了介绍。。总结:

  • 您可以将 Redux 用于任何用途,包括服务器状态缓存和客户端状态
  • Apollo 是专门为通过 GraphQL 请求缓存服务器状态而构建的
  • 如果您使用 Redux 的唯一目的是缓存服务器状态,并且您选择使用 Apollo 来完成该任务,那么您真的不再需要 Redux
  • 但是,如果您确实愿意,可以使用 GraphQL 进行请求并将数据放入 Redux 中

值得注意的是,我们为 Redux Toolkit 提供了一个“RTK Query”API,它提供了完整的数据获取抽象我们甚至还提供了使用 RTK Query 通过 GraphQL 请求和缓存数据的演示。您可能想尝试一下。

  • 是的,我在发布 RTKQ 之前就写过这些,所以这些都指向预览分支。刚刚更新了链接以指向我们当前的文档和示例。 (2认同)