【问题标题】:react with GraphQL Clients与 GraphQL 客户端反应
【发布时间】:2019-06-01 10:49:27
【问题描述】:

ReactGraphQL clientsApollo Client 一起使用是个好主意吗?我可以使用react 和新的Context API 获得相同的结果。

基本上我可以使用GraphQL APIs 使用axios 或任何其他类似的库。对于状态管理,我可以使用 react 的新 Context APIs,这非常简单。

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

//do something with the response.
}) 

Apollo Client 是否还有任何优势。当我没有它也能达到同样的效果时,为什么我真的会选择Apollo client。这将帮助我减小bundle 的大小。

【问题讨论】:

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


    【解决方案1】:

    Apollo 客户端提供了大量功能,不仅限于从服务器获取数据。以下是一份非详尽的清单:

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

    有关详细信息,请参阅大量文档 here

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

    【讨论】:

      猜你喜欢
      • 2012-12-05
      • 2018-04-13
      • 2022-11-28
      • 2018-02-14
      • 2020-11-07
      • 1970-01-01
      • 2020-11-16
      • 2021-07-13
      • 2022-06-18
      相关资源
      最近更新 更多