Lazy Loading Strategy
When to Trigger
- •Large lists/grids
- •Images/media
- •Below-fold content
What to Do
- •Images: next/image with loading="lazy" (default for below-fold); priority for LCP image.
- •Lists: Virtualize long lists (e.g. @tanstack/react-virtual) so only visible rows render; use for 100+ items.
- •Infinite scroll: useInfiniteQuery + intersection observer to load next page when sentinel visible.
- •Components: Dynamic import or render when inView for heavy below-fold sections.
Preserve accessibility (e.g. announce "load more" to screen readers). Prefer native lazy loading where sufficient.