Skip to main content

GraphQL FAQ

# 服务端 常用依赖
pnpm add graphql graphql-scalars @graphql-tools/utils @graphql-tools/schema

Apollo vs Relay vs URQL

  • URQL
    • Bundle 小 - 5.9kB + React = 7.1kB + cache 6.5kB = 13.6kB
      • 支持离线 - 本地 resolve、本地数据缓存
      • Focus Refetching
      • @urql/exchange-multipart-fetch 支持文件上传
    • 🔶
      • 使用人数少 - 社区小
      • suspense 全局 opt-in
    • 🟡
      • 使用 wonka 做流处理 - 内部异常调试很麻烦
    • 🛑
      • 不能在 cacheExchange 之外操作缓存
      • 不支持本地状态管理
      • 不支持 Batched Queries
  • Relay
    • Bundle - 27.7kB + React = 34.1kB
    • 对 Schema 有要求
      • Schema 规范
      • 支持分页
      • Defer & Stream
      • Live Queries
    • 🛑
      • 不能本地 Resolve
      • 不支持返回部分结果
  • Apollo
    • Bundle - 32.9kB
  • 参考
SymbolDesc
Good at
🔶Not Good Enough
🟡Bad at
🛑Sorry for

Fragment Masking