solid/compose-with-tanstack-virtual

Virtualize large @tanstack/solid-table datasets by rendering only visible rows.

28.3k|3.6k|Updated Oct 20, 2016
One-click install
npx skills add https://github.com/TanStack/table --skill solid-compose-with-tanstack-virtual
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: solid/compose-with-tanstack-virtual
Source: https://github.com/TanStack/table/tree/main/packages/solid-table/skills/solid/compose-with-tanstack-virtual
Command: npx skills add https://github.com/TanStack/table --skill solid-compose-with-tanstack-virtual

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves the performance bottleneck of rendering massive datasets in a SolidJS data grid by virtualizing the visible rows instead of mounting every row.

Core Features & Use Cases

  • Virtualize @tanstack/solid-table rows: Take rows from table.getRowModel().rows and only paint the subset currently in view.
  • Integrate with @tanstack/solid-virtual: Use createVirtualizer with a reactive count (() => rows().length) and a scroll container ref.
  • Support real-world behaviors: Keep sorting/filtering/grouping/expanding in the table while the virtualizer only controls which rows render.
  • Use for wide and tall grids: Applies especially when you have very large row counts, dynamic row heights, or infinite scrolling patterns.

Quick Start

Ask an AI coding agent to implement Solid row virtualization for your @tanstack/solid-table by wiring createVirtualizer to your scroll container ref and rendering only virtualized rows in the <tbody> with absolute positioning and translateY.

Frequently Asked Questions about solid/compose-with-tanstack-virtual

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I virtualize large datasets in a SolidJS data grid?

Virtualize large datasets in a SolidJS data grid by using `createVirtualizer` from `@tanstack/solid-virtual` to render only the visible subset of rows from `table.getRowModel().rows`, significantly reducing DOM workload for fast scrolling.

Can I use TanStack virtual scrolling with SolidJS table sorting and filtering?

Yes, TanStack virtual scrolling integrates with SolidJS table sorting, filtering, grouping, and expansion. The virtualizer strictly controls which rows render visually, while the underlying table logic manages the data operations independently.

How does virtual scrolling work with @tanstack/solid-table?

Virtual scrolling with `@tanstack/solid-table` works by passing a reactive row count to `createVirtualizer` and rendering the `<tbody>` with absolute-positioned `<tr>` elements, ensuring only the rows currently in view are mounted to the DOM.

What's the best way to handle dynamic row heights in a virtualized SolidJS table?

To handle dynamic row heights in a virtualized SolidJS table, configure `createVirtualizer` with the correct scroll element ref scoping and use absolute positioning with `translateY` on virtualized `<tr>` elements to maintain accurate scroll positioning.

When should I add virtualization to my SolidJS data table?

You should add virtualization to your SolidJS data table when dealing with very large row counts, scroll-heavy views, or infinite scrolling patterns, ensuring the UI remains responsive by avoiding mounting thousands of DOM nodes simultaneously.