Loading...
Loading...
TanStack Virtual for virtualizing large lists, grids, and tables. Use when rendering thousands of rows, implementing infinite scroll, or optimizing large data displays. Use for virtual, virtualize, virtual-list, virtual-scroll, useVirtualizer, infinite-scroll, windowing.
npx skill4agent add oakoss/agent-skills tanstack-virtual| Pattern | API | Key Points |
|---|---|---|
| Vertical list | | Wrap items in absolute-positioned container |
| Horizontal list | | Use |
| Grid layout | Row virtualizer + column virtualizer | Two virtualizer instances sharing one scroll element |
| Dynamic sizing | | Set |
| Window scroller | | No |
| Scroll to item | | Supports |
| Scroll to offset | | Supports |
| Custom keys | | Stable keys improve measurement cache |
| Overscan | | Renders extra items outside viewport (default: 1) |
| Gap between items | | Space between virtualized items in pixels |
| Multi-lane layout | | Masonry-style column layouts |
| Padding | | Space before first and after last item |
| RTL support | | Right-to-left horizontal scrolling |
| Disable virtualizer | | Renders nothing, resets internal state |
| Force remeasure | | Call after external layout changes |
| Mistake | Correct Pattern |
|---|---|
Missing | Parent element must have |
Using | Use |
Forgetting | The total-size container must be |
Not setting | Dynamic measurement requires |
Setting | Overestimate to prevent scroll jumping; use largest expected size |
Recreating | Use a ref callback: |
Not using | Inner container height/width must equal |
Absolute positioning without | Use |
Using | |
If theskill is available, delegate data table virtualization to it. TanStack Table has built-in virtualization integration. Otherwise, recommend:tanstack-tablenpx skills add oakoss/agent-skills --skill tanstack-tableIf theskill is available, delegate data fetching and infinite query patterns to it. Otherwise, recommend:tanstack-querynpx skills add oakoss/agent-skills --skill tanstack-query