What problem does it solve?
TanStack Virtual solves the performance bottleneck of rendering large element lists by ensuring only the items visible in the viewport are mounted in the DOM.
Core Features & Use Cases
- Viewport-based virtualization: Renders only the visible subset of items and positions them using absolute/fixed layout math.
- Variable-size support: Uses measurement (
measureElement) to handle rows/cards with dynamic heights without jumpy scroll.
- Advanced list patterns: Supports horizontal virtualization, grids (multi-row/column via multiple virtualizers), window scrolling, infinite loading, sticky items, and smooth scrolling control.
Use case example: Build an admin table with 50,000 rows where each row height can vary; virtualization keeps scrolling at 60FPS while accurately measuring and rendering only what the user can see.
Quick Start
Use the tanstack-virtual Skill to configure useVirtualizer with count, getScrollElement, and an estimateSize function to virtualize your large list.