我喜欢graphql。因为它只有一个端点,我只能提取我需要的数据。
所以我使用 apollo-server 作为服务器,apollo-client 作为客户端。
从 apollo-client 3.0 开始,支持状态管理。
apollo-client的reactive变量功能很方便,不过我更喜欢redux。
Redux 工具包还缩短了需要编写的代码长度。
问题是这样的。
不能同时使用 apollo-client 3.0 和 redux 吗?
我不能在 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 Redux和 Redux - 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/