Agents & OrchestrationSûr100100/100
With Tanstack Virtual (TanStack) — Solid Table
Virtualize Solid Table row/column models and infinite Query data with createVirtualizer, reactive counts, scroll targets, stable keys, dynamic measurement, transforms, sticky regions, and grid/flex sizing. Load for Solid tracking or layout bugs.
ou envoie-le directement à ton agent.
Installer dans ton projet
$ curl -fsSL https://arboristhree.xyz/cli/install-skill.mjs -o /tmp/arboris-install-skill.mjs && node /tmp/arboris-install-skill.mjs with-tanstack-virtual__tanstack-table__packages-solid-table-skills-1620ec6083e0TanStack
TanStack/table
Contenu à copier
---
name: with-tanstack-virtual
description: >
Virtualize Solid Table row/column models and infinite Query data with createVirtualizer, reactive counts, scroll targets, stable keys, dynamic measurement, transforms, sticky regions, and grid/flex sizing. Load for Solid tracking or layout bugs.
metadata:
origin: TanStack
{
type: composition,
library: '@tanstack/solid-table',
library_version: '9.2.4',
framework: solid,
}
requires: ['@tanstack/table-core#core', getting-started, table-state]
sources:
- 'TanStack/table:docs/framework/solid/guide/virtualization.md'
- 'TanStack/table:examples/solid/virtualized-rows'
- 'TanStack/table:examples/solid/virtualized-columns'
- 'TanStack/table:examples/solid/virtualized-infinite-scrolling'
---
This skill builds on `@tanstack/table-core#core`, `getting-started`, and `table-state`. Virtualize the final Table model in the renderer; Virtual is not a Table feature.
## Setup
```tsx
import { createVirtualizer } from '@tanstack/solid-virtual'
let scrollElement: HTMLDivElement | undefined
const rows = () => table.getRowModel().rows
const virtualizer = createVirtualizer({
get count() {
return rows().length
},
getScrollElement: () => scrollElement ?? null,
estimateSize: () => 36,
getItemKey: (index) => rows()[index].id,
overscan: 5,
})
```
## Core Patterns
### Keep count reactive
```tsx
const virtualizer = createVirtualizer({
get count() {
return rows().length
},
getScrollElement,
estimateSize,
})
```
### Apply measurement and geometry together
```tsx
<tr
data-index={item.index}
ref={(node) => virtualizer.measureElement(node)}
style={{ position: 'absolute', transform: `translateY(${item.start}px)` }}
/>
```
## Common Mistakes
### HIGH Snapshotting row count
Wrong:
```tsx
createVirtualizer({ count: rows().length, getScrollElement, estimateSize })
```
Correct:
```tsx
createVirtualizer({
get count() {
return rows().length
},
getScrollElement,
estimateSize,
})
```
The getter lets Solid Virtual track changes to the final row model.
Source: `examples/solid/virtualized-rows`
### HIGH Virtualizing raw data
Wrong:
```tsx
const rows = () => data()
```
Correct:
```tsx
const rows = () => table.getRowModel().rows
```
Raw data excludes Table's current sorting, filtering, grouping, expansion, and pagination.
Source: `docs/framework/solid/guide/virtualization.md`
### HIGH Separating ref lifecycle from virtualizer
Wrong:
```tsx
const scrollElement = document.querySelector('#rows')
const virtualizer = createVirtualizer({
getScrollElement: () => scrollElement,
count: 100,
estimateSize,
})
```
Correct:
```tsx
let scrollElement: HTMLDivElement | undefined
const virtualizer = createVirtualizer({
getScrollElement: () => scrollElement ?? null,
get count() {
return rows().length
},
estimateSize,
})
```
Keep the ref and virtualizer in the same owner so observers attach after JSX assigns the element.
Source: `examples/solid/virtualized-rows`
### HIGH Omitting renderer geometry
Wrong:
```tsx
<For each={virtualizer.getVirtualItems()}>
{(item) => <tr>{rows()[item.index].id}</tr>}
</For>
```
Correct:
```tsx
<tbody
style={{ height: `${virtualizer.getTotalSize()}px`, position: 'relative' }}
>
<For each={virtualizer.getVirtualItems()}>
{(item) => (
<tr
style={{
position: 'absolute',
transform: `translateY(${item.start}px)`,
}}
>
{rows()[item.index].id}
</tr>
)}
</For>
</tbody>
```
Virtual computes positions; the renderer must apply spacer size, transforms, widths, and sticky CSS.
Source: `examples/solid/virtualized-rows`
## API Discovery
Inspect `node_modules/@tanstack/solid-table/dist/index.d.ts` and installed `node_modules/@tanstack/solid-virtual/dist/`; use the maintained row, column, or infinite example for the matching CSS geometry contract.Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait With Tanstack Virtual (TanStack) — Solid Table
Applique les pratiques du skill with-tanstack-virtual__tanstack-table__packages-solid-table-skills-1620ec6083e0.
Comment utiliser With Tanstack Virtual (TanStack) — Solid Table
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour With Tanstack Virtual (TanStack) — Solid Table
Dis simplement à ton agent quelque chose comme :
Applique le skill with-tanstack-virtual__tanstack-table__packages-solid-table-skills-1620ec6083e0 à cette tâche
Utilise with-tanstack-virtual__tanstack-table__packages-solid-table-skills-1620ec6083e0 pour améliorer cette implémentation
Passe en revue ce sujet avec with-tanstack-virtual__tanstack-table__packages-solid-table-skills-1620ec6083e0
Skills liés à With Tanstack Virtual (TanStack) — Solid Table
Acceleration (Microsoft)
Compare synthetic acceleration options and clearly separate scenario value from forecast commitments.Account Overview (Microsoft)
Create a synthetic Acme account overview and identify evidence that merits seller attention.Acroform Writer (Microsoft)
Use this skill whenever the user wants values written INTO an existing PDF form that lives in the connected SharePoint knowledge source — filling out, completing, populating, or submitting a fillable PDF (application, intake sheet, contract, government form) from data they supply, a spreadsheet row, or the conversation. Triggers include "fill out the job application form", "complete the intake form for [person]", "populate our standard NDA template", and "make this ready to send / non-editable" (flatten). The source form should be found via knowledge search; only ask the user to upload it if knowledge search turns up nothing plausible. different task), and do NOT use it on scanned/image-only PDFs that have no real fillable fields — those need OCR or manual overlay instead, which this skill explicitly detects and reports rather than silently failing.