@apollo/client 、 apollo-client 和 apollo boost 之间的区别

Posted

技术标签:

【中文标题】@apollo/client 、 apollo-client 和 apollo boost 之间的区别【英文标题】:difference between @apollo/client , apollo-client and apollo boost 【发布时间】:2021-01-15 01:14:31 【问题描述】:

我正在使用@apollo/client 来实现,但我没有看到@apollo/clientreact 的任何完整示例。 如果我搜索,我会得到 apollo-clientapollo boost 的示例。

这三个有什么区别。 我了解@apollo/client 是所有的新版本。 我在哪里可以获得带有react 应用程序的@apollo/client 的完整示例?

import  ApolloClient, InMemoryCache, ApolloLink, createHttpLink, defaultDataIdFromObject  from '@apollo/client';
import  ApolloClient, InMemoryCache, ApolloLink  from 'apollo-boost';

【问题讨论】:

【参考方案1】:

只是为那些想知道他们是否仍应使用 Boost 的人添加已发布的答案。

来自文档:

Apollo Boost 项目现已退役,因为 Apollo Client 3.0 提供了类似的简单设置。我们建议删除所有 apollo-boost 依赖和修改你的 ApolloClient 构造函数 根据需要。

【讨论】:

【参考方案2】: 阿波罗升压

Apollo Boost 包含一些我们认为对于使用 Apollo Client 进行开发必不可少的软件包。这是盒子里的东西:

apollo-client: 神奇发生的地方 apollo-cache-inmemory:我们推荐的缓存 apollo-link-http:用于远程数据获取的 Apollo Link apollo-link-error:用于错误处理的 Apollo Link graphql-tag:为您的查询和突变导出 gql 函数

Apollo Boost 的绝妙之处在于您不必自己设置任何这些!如果您想使用这些功能,只需指定几个选项,剩下的交给我们。有关可用选项的完整列表,请参阅 Apollo Boost 配置选项文档。

见What's in Apollo Boost

阿波罗客户端

旧版本(3.x以下)apollo客户端

@apollo/client

最新版(3.x+)apollo客户端发布为Scoped packages

查看官方get started example

【讨论】:

我收到此错误。 React Hook "useQuery" 在函数 "getData" 中被调用,该函数既不是 React 函数组件也不是自定义 React Hook 函数 react-hooks/rules-of-hooks。我正在使用来自示例链接的相同 package.json 文件。我运行了您提供的示例链接,它工作正常。我使用 yarn create-reactapp 创建了应用程序。这是导致这个问题的原因吗?

以上是关于@apollo/client 、 apollo-client 和 apollo boost 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

安装@apollo/client 后无法解析主模块字段

使用 React 钩子处理 graphQL 突变错误(useMutation + Apollo-client)

如何使用 Apollo 工具为查询生成 Typescript 类型,包括 Apollo @client 和 @rest 指令?

apollo 的 useQuery 数据在 client.resetStore() 之后没有更新

错误:尝试解析模块 @apollo/client React Native 时

@apollo/client 反应钩子 useQuery() 数据未定义