TECHNOLOGY COMPARE

Apollo Client / TanStack Query

「どっちが上?」ではなく、まず同じ仕事をする道具なのかを確認します。

DIRECT COMPARISON

直接比較しやすい組み合わせ

Apollo ClientとTanStack Queryはどちらも「状態・データ取得」の技術なので、同じ土俵で比較しやすい組み合わせです。

状態・データ取得

Apollo Client

GraphQL データを取得・正規化キャッシュするクライアントライブラリ。クエリ結果をオブジェクト単位でキャッシュし、Reactの状態へ接続する。

何を担当する?

クエリ結果をオブジェクト単位でキャッシュし、Reactの状態へ接続する。

いつ使う?

  • GraphQL スキーマを中心に複雑な画面データを扱うとき。

避けたい場面

  • RESTだけの小さなAPIでGraphQL キャッシュが不要なとき。
状態・データ取得

TanStack Query

サーバーから得る非同期データをキャッシュ管理するライブラリ。取得、再取得、失効、読み込み、ミューテーションの状態を扱う。

何を担当する?

取得、再取得、失効、読み込み、ミューテーションの状態を扱う。

いつ使う?

  • API データの同期とキャッシュを画面状態から分離したいとき。

避けたい場面

  • クライアント内だけの単純なフォーム状態を管理したいとき。
DIRECT RELATION

TanStack QueryとApollo Clientはサーバー状態の取得、キャッシュ、同期で比較される。取得、再取得、失効、loading、ミューテーションの状態を扱う。一方、Apollo Clientはクエリ結果をオブジェクト単位でキャッシュし、Reactの状態へ接続する。