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(); }, []);
より高度なキャッシュを行うには、Service Worker を使用して API 応答をキャッシュし、キャッシュから直接提供できます。
フェッチされたデータから派生した計算データを扱っている場合は、useMemo を使用して値をメモ化します:
const memoizedValue = useMemo(() => computeExpensiveValue(data), [data]);
データの鮮度、複雑さ、ユーザー エクスペリエンスなどの要素を考慮して、アプリケーションのニーズに最適なキャッシュ戦略を選択してください。 React Query のようなライブラリはキャッシュとデータのフェッチを簡素化できますが、手動の方法ではより詳細な制御が可能です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3