与 GraphQL 客户端反应
react with GraphQL Clients
像 Apollo Client
一样将 React
与 GraphQL clients
一起使用是个好主意吗?我可以使用 react
和新的 Context API
获得相同的结果。
基本上我可以使用 axios
或任何其他类似的库来使用 GraphQL API
s。对于状态管理,我可以使用 React 的新 Context API
s,这非常简单。
axios.get('localhost://4000?qraphql').then((res)=>{
//do something with the response.
})
Apollo Client
还有什么优势吗?当我没有它也能达到同样的效果时,为什么我真的会选择 Apollo client
。它会帮助我减小 bundle
尺寸。
Apollo 客户端提供了大量的功能,不仅仅是从服务器获取数据。以下是一个非详尽的列表:
- 公开加载、错误和数据状态,因此您不必为了异步获取数据而创建额外的有状态组件
- 规范化的缓存层,可让您避免向服务器发出不必要的重复请求
- 允许您的 UI 在任何查询或突变更改缓存的相关部分时更新的可观察查询
- 强大的错误处理工具
apollo-link-error
- 分页支持
loadMore
- 乐观UI 突变更新
- 通过
apollo-link-ws
支持订阅
- 通过
apollo-link-state
与本地状态管理集成
- 通过
@defer
指令支持延迟查询
- 服务器端渲染支持
- Apollo 客户端开发人员工具 chrome 扩展,包括内置 GraphiQL 控制台、查询观察器、变异检查器和缓存检查器。
有关详细信息,请参阅详尽的文档 here。
有一些常见的模式导致必须编写(和测试)一堆样板代码,例如维护加载状态,以便您的 UI 知道请求何时完成。使用 Apollo 或任何其他类似客户端,无需编写所有样板文件,并提供干净、经过良好测试的 API 供您使用。如果您在一个团队中工作,还有一些话要说,就是使用一个您的团队中的一些人可能已经熟悉的文档齐全的库,而不是必须学习一些专门为一个特定的项目。
像 Apollo Client
一样将 React
与 GraphQL clients
一起使用是个好主意吗?我可以使用 react
和新的 Context API
获得相同的结果。
基本上我可以使用 axios
或任何其他类似的库来使用 GraphQL API
s。对于状态管理,我可以使用 React 的新 Context API
s,这非常简单。
axios.get('localhost://4000?qraphql').then((res)=>{
//do something with the response.
})
Apollo Client
还有什么优势吗?当我没有它也能达到同样的效果时,为什么我真的会选择 Apollo client
。它会帮助我减小 bundle
尺寸。
Apollo 客户端提供了大量的功能,不仅仅是从服务器获取数据。以下是一个非详尽的列表:
- 公开加载、错误和数据状态,因此您不必为了异步获取数据而创建额外的有状态组件
- 规范化的缓存层,可让您避免向服务器发出不必要的重复请求
- 允许您的 UI 在任何查询或突变更改缓存的相关部分时更新的可观察查询
- 强大的错误处理工具
apollo-link-error
- 分页支持
loadMore
- 乐观UI 突变更新
- 通过
apollo-link-ws
支持订阅
- 通过
apollo-link-state
与本地状态管理集成
- 通过
@defer
指令支持延迟查询 - 服务器端渲染支持
- Apollo 客户端开发人员工具 chrome 扩展,包括内置 GraphiQL 控制台、查询观察器、变异检查器和缓存检查器。
有关详细信息,请参阅详尽的文档 here。
有一些常见的模式导致必须编写(和测试)一堆样板代码,例如维护加载状态,以便您的 UI 知道请求何时完成。使用 Apollo 或任何其他类似客户端,无需编写所有样板文件,并提供干净、经过良好测试的 API 供您使用。如果您在一个团队中工作,还有一些话要说,就是使用一个您的团队中的一些人可能已经熟悉的文档齐全的库,而不是必须学习一些专门为一个特定的项目。