与GraphQL客户端反应

时间:2019-01-06 15:36:56

标签: reactjs graphql react-apollo apollo-client apollo-boost

ReactGraphQL clients一起使用Apollo Client是个好主意吗?使用react和新的Context API可以达到相同的结果。

基本上,我可以使用GraphQL API或任何其他类似的库来消耗axios。对于状态管理,我可以使用react的新Context API来完成,这很简单。

axios.get('localhost://4000?qraphql').then((res)=>{

//do something with the response.
}) 

Apollo Client还有什么优势。如果没有它,我为什么会真正追求Apollo client呢?这将帮助我减小bundle的大小。

1 个答案:

答案 0 :(得分:1)

Apollo客户端除了简单地从服务器获取数据外,还提供大量功能。以下是一个非详尽的清单:

  • 公开的加载,错误和数据状态,因此您不必为了异步获取数据而创建其他有状态组件
  • 标准化的缓存层,使您可以避免对服务器进行不必要的重复请求
  • 可观察的查询,使您的用户界面在任何查询或突变更改缓存的相关部分时进行更新
  • 通过apollo-link-error的强大错误处理工具
  • 通过loadMore的分页支持
  • 针对突变的乐观UI更新
  • 通过apollo-link-ws对订阅的支持
  • 通过apollo-link-state与本地状态管理集成
  • 通过@defer指令支持延迟查询
  • 服务器端渲染支持
  • Apollo客户端开发人员工具chrome扩展,包括内置的GraphiQL控制台,查询观察器,变异检查器和缓存检查器。

有关更多详细信息,请参见广泛的文档here

有些常见的模式导致必须编写(和测试)一堆样板代码,例如保持加载状态,以便您的UI知道请求何时完成。使用Apollo或任何其他类似的客户端,无需编写所有样板文件,并为您提供了一个经过良好测试的干净API。如果您在团队中工作,那么使用某些团队可能已经熟悉的文档齐全的库也有很多话要说,而不是学习专门为特定项目创建的新API。