# Migrate V8 To V9

Migrate preact Table v8 to v9.

- Repository: https://github.com/TanStack/table (28539 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-21
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add TanStack/table --skill migrate-v8-to-v9 -g -a claude-code -y`
Codex: `npx skills add TanStack/table --skill migrate-v8-to-v9 -g -a codex -y`
Cursor: `npx skills add TanStack/table --skill migrate-v8-to-v9 -g -a cursor -y`
Gemini CLI: `npx skills add TanStack/table --skill migrate-v8-to-v9 -g -a gemini-cli -y`

## Description

Migrate preact Table v8 to v9. Audit framework construction, rendering, state, and app hooks, with shared API changes in the core migration skill.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Preact v8-to-v9 migration checklist

Before starting, run `intent load @tanstack/table-core#migrate-v8-to-v9`. Audit its entire shared checklist and read the detailed core mappings for APIs present in the application. This checklist adds the Preact-specific changes.

Framework prerequisite: Preact 10 or newer (`preact >=10`).

## Adapter audit

- [ ] Replace React-adapter imports and `useReactTable` with native `@tanstack/preact-table` and `useTable`.
- [ ] Remove compat aliases that existed only for Table. Preserve aliases still required by other libraries, including a React Virtual integration.
- [ ] Keep model inputs stable and configure explicit features/row-model slots; complete the shared core checklist.
- [ ] Use selected `table.state`, `table.Subscribe`, or Preact Store subscriptions; snapshots alone do not rerender consumers.
- [ ] Pair controlled slices with callbacks, or supply stable atoms from `@tanstack/preact-store`; remove global `onStateChange`.
- [ ] Use native Preact FlexRender components. Adopt `tableOptions` or `createTableHook` only for repeated app conventions.

## Load the affected details

When the audit finds old Preact construction, state, rendering, or app-hook code, read [adapter migration details](references/adapter-migration.md) before editing it. For a replacement render scaffold, read [getting started](../getting-started/SKILL.md). For controlled or stale state after migration, read [table state](../table-state/SKILL.md).

Shared pinning, sizing, sorting, selection, prototype-method, type, and registry changes stay in the core migration references. Renaming `useReactTable` alone does not complete the migration.

## Verify the migration

The rest: https://github.com/TanStack/table/blob/HEAD/packages/preact-table/skills/migrate-v8-to-v9/SKILL.md
