Lazy loading improves initial load time by deferring non-critical resources. Here's how to implement it.
React.lazy Basics#
Route-Based Code Splitting#
Preloading Components#
Component-Level Lazy Loading#
Image Lazy Loading#
List Virtualization#
Conditional Loading#
Bundle Analysis#
Loading States#
Error Recovery#
Best Practices#
Code Splitting:
✓ Split at route level first
✓ Split large components
✓ Group related code in chunks
✓ Analyze bundle sizes
Loading UX:
✓ Use meaningful loading states
✓ Show skeletons over spinners
✓ Defer loading indicator display
✓ Preload on user intent
Performance:
✓ Set appropriate chunk sizes
✓ Use prefetch for likely routes
✓ Avoid over-splitting
✓ Monitor Core Web Vitals
Images:
✓ Use native loading="lazy"
✓ Provide width/height
✓ Use appropriate formats
✓ Consider progressive loading
Conclusion#
Lazy loading improves initial load performance by deferring non-critical resources. Use route-based splitting for the biggest impact, preload on user intent for better UX, and always provide meaningful loading states. Monitor bundle sizes and Core Web Vitals to measure impact.