跳到主要內容
版本:v18.0.0

提取策略

重複使用本地快取資料的第一步是將 fetchPolicy 傳遞給 loadQuery 函式,該函式可由 useQueryLoader 提供(請參閱提取查詢章節

const React = require('React');
const {graphql} = require('react-relay');

function AppTabs() {
const [
queryRef,
loadQuery,
] = useQueryLoader(HomeTabQuery);

const onSelectHomeTab = () => {
loadQuery({id: '4'}, {fetchPolicy: 'store-or-network'});
}

// ...
}

提供的 fetchPolicy 將決定

預設情況下,Relay 會嘗試從本地快取讀取查詢;如果該查詢的任何資料遺失過時,它將從網路提取整個查詢。此預設的 fetchPolicy 稱為「store-or-network」。

具體來說,fetchPolicy 可以是以下任何選項:**

  • 「store-or-network」:(預設)重複使用本地快取的資料,並且僅當查詢的任何資料遺失過時才會發送網路請求。如果查詢已完全快取,則不會發出網路請求。
  • 「store-and-network」:重複使用本地快取的資料,並且總是發送網路請求,無論是否有任何資料在儲存中遺失過時
  • 「network-only」:不會重複使用本地快取的資料,並且總是發送網路請求來提取查詢,忽略任何可能本地快取的資料以及它是否遺失過時
  • 「store-only」:重複使用本地快取的資料,並且永遠不會發送網路請求來提取查詢。在這種情況下,提取查詢的責任落在呼叫者身上,但此策略也可用於讀取和操作完全本地的資料。

請注意,提取和呈現不同資料章節中討論的 refetch 函式也採用 fetchPolicy


此頁面有幫助嗎?

透過 回答幾個快速問題.