redux - 如何将 redux 与 graphql 一起使用

标签 redux graphql apollo

我喜欢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 吗?那怎么办?

请检查!

最佳答案

了解 GraphQL is just a protocol for describing requests and responses 很重要.但是,是的,“我正在使用 GraphQL”通常也意味着使用 Apollo 或 Urql 等智能客户端库。

当然可以在同一个应用程序中使用 Apollo 和 Redux,但问题在于您分别使用它们的目的是什么。我已经在我的帖子中介绍过这个 When (and when not) to Reach for ReduxRedux - Not Dead Yet! .总结:

  • 您可以将 Redux 用于任何事情,包括服务器状态缓存和客户端状态
  • Apollo 专门用于通过 GraphQL 请求缓存服务器状态
  • 如果您使用 Redux 的唯一是缓存服务器状态,并且您选择使用 Apollo 来完成该任务,那么您真的不再需要 Redux
  • 但是,如果你真的想的话,你可以使用 GraphQL 来处理请求并将数据放入 Redux 中

值得注意的是,我们有 an "RTK Query" API for Redux Toolkit that provides a complete data fetching abstraction , 和 we even have a demo of using RTK Query to request and cache data with GraphQL .您可能想尝试一下。

关于redux - 如何将 redux 与 graphql 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67707389/

相关文章:

javascript - 通用服务,了解我是在 GRAPHQL 上下文还是 HTTP 上下文中?

javascript - GraphQL Dataloader 事先不知道 key

apollo - 如何以编程方式执行useLazyQuery?

javascript - 如何在reducer中的数组索引处添加对象

javascript - 在 Redux 和 React Native 应用程序中访问商店

javascript - 当变量改变时 redux 状态自动改变

javascript - 搜索时键入一个符号后 TextInput 失去焦点

go - 如何将JSON响应中的特定数组值转换为只是数组中的第一个值?

node.js - 我可以在 prisma 的 connectOrCreate 中使用 "AND"吗?

android - 如何手动将 Apollo Android 生成的对象转换为 JSON 字符串并返回?