React.lazy يحمل حزمة JavaScript الخاصة بالمكون عند الطلب (فقط عند أول عرض). Suspense يعرض واجهة مستخدم بديلة بينما أي مكون lazy (أو موقوف بيانات) لا يزال في حالة التحميل.
= .( ());
() {
(
);
}
React.lazy يحمل حزمة JavaScript الخاصة بالمكون عند الطلب (فقط عند أول عرض). Suspense يعرض واجهة مستخدم بديلة بينما أي مكون lazy (أو موقوف بيانات) لا يزال في حالة التحميل.
= .( ());
() {
(
);
}
بدون تقسيم الأكواد، يقوم المتصفح بتحميل التطبيق بالكامل (بما في ذلك مكتبة الرسوم البيانية الثقيلة) قبل عرض أي شيء. مع lazy، يتم تقسيم كود Chart إلى ملفه الخاص ويتم جلبه فقط عندما يصل المستخدم إليه بالفعل — مما يحسن وقت التحميل الأولي و Core Web Vitals.
عندما يتوقف Chart (حزمته غير جاهزة)، يقوم React بـ "إيقاف" هذا الجزء من الشجرة وعرض أقرب fallback لـ Suspense بدلاً من ذلك، ثم يستبدل بالمكون الفعلي بمجرد تحميله. يمكن لحد واحد أن يغلف عدة مكونات lazy ويعرض fallback واحد:
<Suspense fallback={<PageSkeleton />}>
<Header />
<LazyFeed />
<LazySidebar />
</Suspense>
ينسق Suspense أيضاً تحميل البيانات مع الأطر والمكتبات التي "تتوقف" على جلب معلق، ويقترن بـ streaming SSR (Next.js App Router) لإرسال shell سريع وبث الأجزاء الأبطأ. ضع الحدود بحكمة لتجنب التحولات الكبيرة والمزعجة في التخطيط عند ظهور المحتوى.