Apollo Client Introduction
What's Apollo client
根據官方文件說法,Apollo client是一個client端的狀態管理函示庫,可以用來管理 local 及 remote 的GraphQL 資料。
從最基本的來說,可以把他想成是一個用來與後端GraphQL溝通的前端套件,(像是client端要與Rest API溝通可能會使用 got
, axios
等套件)。透過它加上適當的GraphQL Query就能與後端進行交換資料。
然而,他實際的功能不只這樣,除了基本的Query / Mutation 功能以外,它還有提供強大的狀態管理功能,也就是cache。Apollo client會試著把每個Query / Mutation的結果寫入 local cache裡面。搭配適當的 cache policy,可以對前端的效能進行優化。
另外,Apollo client的官方文件也非常詳細,對於常見的client side pattern幾乎都有紀錄並提供範例。E.g. Pagination, local state/variable等等。另外也有 Apollo Link,(類似後端中middleware的功能),可以讓整個GraphQL的Network Request被分階段處理。
以下會探討一些文件中提到的重要觀念
- Cache
- Pagination