Wener Site

GraphQL FAQ

约 2 分钟阅读
标签:FAQ
  • 高级特性
    • @defer & @stream
    • @skip & @include
    • 批量查询
    • 使用 SSE 作为 Subscription - 避免 Websocket
    • Fragment Masking
    • Client-side schema - Apollo
    • @client Local only fields - Apollo
    • @export - Apollo
    • Local Resolver - URQL
    • Schema Awareness
    • Local Directive - URQL
      • @_optional
      • @_required
      • 自定义
    • Normalized Caching
    • Document Caching
    • Persisted Queries
    • File Uploads
bash
# 服务端 常用依赖
pnpm add graphql graphql-scalars @graphql-tools/utils @graphql-tools/schema

Apollo vs Relay vs URQL

  • URQLGitHubFormidableLabs/urqlFormidableLabs/urql · 流处理实现基于 kitten/wonka · 优势 · 支持泛化缓存 · Schema 感知 · 开启后支持部分结果返回 - 请求的字段未被缓存但是是 nullable 则先返回 - 因为不影响语义笔记:URQL
    • ~15kB
    • ✅
      • 支持离线 - 本地 resolve、本地数据缓存
      • Focus Refetching
      • @urql/exchange-multipart-fetch 支持文件上传
    • 🔶
      • 使用人数少 - 社区小
      • suspense 全局 opt-in
    • 🟡
      • 使用 wonka 做流处理 - 内部异常调试很麻烦
    • 🛑
      • 不能在 cacheExchange 之外操作缓存
      • 不支持本地状态管理
      • 不支持 Batched Queries
  • RelayGitHubfacebook/relay
    • ~35kB
    • 对 Schema 有要求
    • ✅
      • Schema 规范
      • 支持分页
      • Defer & Stream
      • Live Queries
    • 🛑
      • 不能本地 Resolve
      • 不支持返回部分结果
  • ApolloGitHubapollographql/apollo-client
    • ~60kB
    • ✅
      • 支持 batch
  • 参考
SymbolDesc
✅Good at
🔶Not Good Enough
🟡Bad at
🛑Sorry for

Fragment Masking

关联信息

反向链接和本文引用的外部资料。

References

GitHub

4 条

其他外链

4 条
最近更新commit ff9f085Edit

On this page