Client-Side Patterns

生で <code>fetch</code> するのは辛い。専用クライアントを使うのが定石。

Mutation
データの変更(Create, Update, Delete)。

Major Players

Use Apollo Client if...

「キャッシュ正規化」が必要な大規模アプリ。GraphQLのデファクトスタンダード。

Use TanStack Query (React Query) if...

RESTとGraphQLが混在しているアプリ。あるいは、Apolloほど重厚な機能が要らない場合(<code>graphql-request</code> と組み合わせる)。

Use Relay if...

FacebookScaleの大規模アプリ。パフォーマンス最適化が極限まで求められる場合。学習コストは高い。

Code Generation (Codegen):

「スキーマからTypeScriptの型を自動生成する」のがGraphQL開発のハイライト。手書きの型定義はもう不要。