يمكن أن يؤدي تخزين البيانات مؤقتًا في 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