💡 Dynamic Import در React چیه و چرا مهمه؟
به جای اینکه همهی کامپوننتها رو یکجا توی bundle اصلی بفرستید، میتونید lazy load کنید: فقط وقتی کاربر نیاز داشت، بارگذاری بشه.
کد به چند بخش تقسیم میشه و هر بخش فقط وقتی نیاز باشه بارگذاری میشه.
چطوری کار میکنه؟
const LazyComponent = React.lazy(() => import('./HeavyComponent'));
<Suspense fallback={<LoadingSpinner />}>
<LazyComponent />
</Suspense>🎯 کاربردها:
کاهش حجم bundle اولیه → لود سریعتر صفحه
Route-based splitting → هر صفحه فقط وقتی کاربر رفت اونجا لود میشه
Conditional load → مودالها و بخشهای سنگین فقط موقع نیاز
⚡ نکات مهم:
همیشه با Suspense استفاده کنید
fallback میتونه Skeleton loading یا Spinner باشه
برای خطاها از Error Boundary استفاده کنید
💡 مثال عملی:
// مودال فقط وقتی کاربر کلیک کرد لود میشه
const handleClick = async () => {
const Modal = await import('./HeavyModal');
// نمایش مودال
};این کار باعث میشه:
کاهش حجم اولیه
بهبود Lighthouse score
تجربه کاربری روانتر
⚠️ فقط کامپوننتهای سنگین رو lazy کنید، زیادهروی نکنید.