了解Apollo Client的fetch policy可以幫助我們有效地管理資料載入和緩存策略。以下是一些常見的fetch policy以及它們適用的情境:
1.cache-first
此策略會先從緩存中讀取資料,如果緩存中沒有相應的資料,才會發送網絡請求。這是預設的策略。
適用情境:當你希望盡量減少網絡請求並且資料不經常變動時,可以使用此策略。
2.cache-and-network
此策略會先從緩存中讀取資料,同時也會發送網絡請求來更新緩存中的資料。
適用情境:當你希望即使有緩存也能獲取最新的資料,以確保資料的及時性時,可以使用此策略。
3.cache-only
此策略只會從緩存中讀取資料,不會發送任何網絡請求。
適用情境:當你確定緩存中一定有資料,並且不希望發送任何網絡請求時,可以使用此策略。
4.network-only
此策略只會發送網絡請求,不會使用緩存中的資料。
適用情境:當你需要每次都獲取最新的資料,而不關心緩存中的資料時,可以使用此策略。
5.no-cache
此策略會發送網絡請求,但不會將資料寫入緩存。
適用情境:當你不希望資料被緩存(例如敏感資料)時,可以使用此策略。
6.standby
此策略會暫停查詢,不會讀取資料,也不會發送網絡請求。
適用情境:當你需要暫時不執行某個查詢時,可以使用此策略。
cache-and-network
與 network-only
的比較cache-and-network
會先返回緩存中的資料,並在後台更新資料,這樣可以提供快速的初始渲染,同時確保資料最終的一致性。而 network-only 則每次都會發送網絡請求,確保獲取的是最新資料,但可能會帶來較長的載入時間。