vue/compose-with-tanstack-virtual

Compose TanStack Vue Table with TanStack Virtual for row and column virtualization.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Rendering thousands of rows in a Vue TanStack Table causes slow performance and scroll jank because the browser has to paint every row.

Core Features & Use Cases

  • Row virtualization with TanStack Virtual: Render only the visible row slice by using a row virtualizer driven by rows.length and getVirtualItems(), then position rows with transform: translateY(start)px.
  • Column virtualization: Virtualize columns horizontally using a horizontal virtualizer plus left/right padding placeholders so visible columns don’t “slide” during horizontal scroll.
  • Dynamic row height handling: Optionally use measureElement to support variable-height rows while avoiding Firefox measurement inconsistencies.
  • Infinite scrolling integration: Pair virtual scrolling with useInfiniteQuery and fetch the next page when the user approaches the bottom, keeping ordering correct with manualSorting: true.
  • Use Case: Build a high-performance datagrid for 50,000+ records (or an infinite feed) while preserving TanStack Table features like sorting, filtering, grouping, and selection.

Quick Start

Use the vue/compose-with-tanstack-virtual skill to set up @tanstack/vue-table with @tanstack/vue-virtual by creating a deepest leaf component that owns useVirtualizer, then render only virtualRows with absolute positioning and grid-based table layout.

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

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

FAQPage Schema
How do I render huge Vue tables without scroll jank and DOM overload?▼

Use Vue virtual scrolling to render only visible rows by applying a translateY transform, preventing DOM overload and keeping scrolling smooth for huge datasets.

Can I virtualize both rows and columns in a Vue datagrid?▼

Yes, column virtualization uses a horizontal virtualizer with left and right padding placeholders so visible columns stay stable during horizontal scroll in a Vue datagrid.

Does TanStack Vue Table support dynamic row heights during virtual scrolling?▼

Yes, dynamic row height handling uses measureElement to support variable-height rows, though you must account for Firefox measurement inconsistencies during virtual scrolling.

What is the best way to add infinite scrolling to a Vue virtualized table?▼

Pair virtual scrolling with useInfiniteQuery to fetch next pages when approaching the bottom, keeping ordering correct with manualSorting enabled for infinite feed patterns.

Do I need CSS grid for TanStack Vue virtual row positioning?▼

Yes, CSS grid combined with absolute positioning and translateY is required to satisfy scroll virtualization requirements and correctly position virtual rows in Vue.