Apollo Client
なぜ Apollo Client か
宣言的なデータ取得
- データ取得にまつわる多くの面倒な処理が
useQuery
にカプセル化される- データ取得の開始と終了
- データ取得中かどうかの状態管理
- エラーの管理
- UI の更新
- 正規化
- キャッシング
- 楽天的更新
- データの再取得
- ページネーション
- これにより、下手をすると数千行のコードを削減できる
function Feed() {
const { loading, error, data } = useQuery(GET_DOGS);
if (error) return <Error />;
if (loading || !data) return <Fetching />;
return <DogList dogs={data.dogs} />;
}
ゼロコンフィグ・キャッシング
正規化されたデータキャッシュをゼロコンフィグで利用できる