تكرار السؤال: …
الإجابة المختصرة
بضبط gcTime و staleTime وتكوين كاش دائم (Persistent Cache) يحفظ استجابات الـ API في MMKV لاستعادتها فورياً عند إقلاع التطبيق دون اتصال.
الشرح
في تطبيقات الهاتف، يعتبر الاحتفاظ بالبيانات عبر جلسات التشغيل ضرورياً لتجنب شاشات التحميل البيضاء عند فتح التطبيق. باستخدام createAsyncStoragePersister أو محول MMKV مع persistQueryClient، يتم حفظ الكاش على القرص وتجاوز طلبات الشبكة للبيانات المستقرة، مما يعطي إحساساً بالسرعة اللحظية.
مثال بالكود
import { QueryClient } from '@tanstack/react-query';
import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
gcTime: 1000 * 60 * 60 * 24, // الاحتفاظ بالكاش 24 ساعة
staleTime: 1000 * 60 * 5, // تعتبر البيانات صالحة لمدة 5 دقائق
},
},
});أخطاء شائعة
- تعيين staleTime بقيمة صفر دائماً مما يجبر التطبيق على إعادة تنزيل البيانات في كل مرة ينتقل فيها المستخدم بين الشاشات.
أسئلة متابعة
- كيف تستخدم Zustand مع MMKV لإنشاء مخزن حالة عالمي متزامن ومحفوظ محلياً (Persistent Store)؟
- ما الفرق بين AsyncStorage ومكتبة react-native-mmkv ولماذا تعتبر MMKV أسرع بمراحل؟