在 React 中快取資料可以透過減少多次獲取相同資料的需要來顯著提高效能和使用者體驗。以下是React中實作資料快取的幾種方法:
您可以將資料快取在瀏覽器的本機儲存或會話儲存中:
const fetchData = async () => { const cachedData = localStorage.getItem('myData'); if (cachedData) { return JSON.parse(cachedData); } const response = await fetch('https://api.example.com/data'); const data = await response.json(); localStorage.setItem('myData', JSON.stringify(data)); return data; }; // Use it in your component useEffect(() => { const loadData = async () => { const data = await fetchData(); setData(data); }; loadData(); }, []);
您可以使用 JavaScript 物件實作自己的快取機制,以基於唯一鍵儲存資料:
const cache = {}; const fetchData = async (key) => { if (cache[key]) { return cache[key]; } const response = await fetch(`https://api.example.com/data/${key}`); const data = await response.json(); cache[key] = data; // Cache the data return data; }; // Use it in your component useEffect(() => { const loadData = async () => { const data = await fetchData('myKey'); setData(data); }; loadData(); }, []);
對於更高級的緩存,您可以使用服務工作人員快取 API 回應並直接從快取中提供服務。
如果您正在處理從獲取的數據派生的計算數據,請使用 useMemo 來記憶值:
const memoizedValue = useMemo(() => computeExpensiveValue(data), [data]);
考慮資料新鮮度、複雜性和使用者體驗等因素,選擇最適合您的應用程式需求的快取策略。像 React Query 這樣的庫可以簡化快取和資料獲取,而手動方法可以為您提供更多控制。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3