tanstack-table について
tanstack-tableは、TanStack Table v9の開発を支援するスキルです。機能の組み合わせやv8からの移行を含め、API選択、実装方法、Reactテーブルの検証を案内します。
主な機能
- 01パッケージのバージョンとAPI確認
- 02テーブル機能の明示的な構成
- 03行モデルファクトリーの設定
- 04v8移行ガイダンス
- 05型とインタラクションの検証
活用シーン
- 01必要な機能を選んだReactテーブルの構築
- 02テーブルのv8からv9への移行
- 03サーバーサイドのテーブル動作の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill tanstack-tableインストール後、Claude Code で/tanstack-tableを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/features.mdproduction-patterns.mdsetup-core.mdsource-map.mdstate-and-migration.md詳細
TanStack Table
TanStack Table v9 に関連する作業、特に @tanstack/react-table、テーブル機能の構成、複雑なデータグリッドの動作、または v8 API からの移行に取り組む際に、このスキルを使用します。
ワークフロー
- コードを変更する前に、ローカルのバージョンと対象 API を確認します。
@tanstack/react-table、@tanstack/table-core、任意の@tanstack/react-table-devtools、任意の@tanstack/react-store、任意の@tanstack/react-virtual、および React のバージョン。- アプリが安定版の v9(
latestは9.2.x)を使用しているかどうか。古いアプリでは v8 が固定されている場合があります。v8 と v9 の API を混在させないでください。 - 現在のテーブル作成方式:
useTable、createTableHook、stockFeatures、または一時的なuseLegacyTable。 tableFeatures()に登録されている機能と、実際に必要な行モデルファクトリー。
- 移行、新しい機能 API、またはパッケージの不一致について、最新のドキュメントを確認します。source-map.md から始めてください。
- インストール、コア設定、列、レンダリング、行モデルについては、setup-core.md を使用します。
- v8 から v9 への移行、
useLegacyTable、状態の所有、外部アトム、セレクター、テーブルコンテキスト、React Compiler に関する注意点については、state-and-migration.md を使用します。 - ソート、フィルタリング、ファセット化、ページネーション、選択、固定、サイズ調整、グループ化、集計、セル選択、スパン設定については、features.md を使用します。
- サーバーサイドのパターン、TanStack Query、仮想化、開発ツール、ワーカー行モデル、パフォーマンス、アクセシビリティ、テストについては、production-patterns.md を使用します。
実装上の判断
- 単発のテーブルには
useTableと明示的なtableFeatures()を使用します。複数のテーブルで機能、デフォルト設定、または標準化されたコンポーネントを共有する場合はcreateTableHookを使用します。ツリーシェイキングがまだ重要でない場合に限り、手軽に多くの機能をまとめて使える方法としてstockFeaturesを使用します。 - テーブルが必要とする機能だけを登録します。コアの行モデルは自動です。クライアントサイドのフィルタリング、ソート、グループ化、展開、ファセット化、ページネーションには、対応する行モデルファクトリーが必要です。
- レジストリスロットには、個別にインポートした
filterFn_*、sortFn_*、aggregationFn_*のエントリーを優先して使用します。filterFns/sortFns/aggregationFnsの各オブジェクトも引き続き使用できますが、すべての組み込み機能がバンドルされます。 - レンダリング間で
data、columns、再利用可能な列ヘルパーを安定させてください。 - 行、セル、列、ヘッダーの各インスタンスからメソッドを分割代入しないでください。インスタンス上で呼び出してください。
- セルとヘッダーには
table.FlexRenderまたは v9 のFlexRenderコンポーネントを使用してください。 - サーバークエリ、永続化、またはコンポーネント間の UI を支える状態には、外部アトムを優先して使用します。単純な移行作業では、従来の
stateとonXChangeのパターンも引き続き役立ちます。 - サーバーがすでに処理済みのデータを返す場合は、
manualSorting、manualFiltering、manualPagination、manualGroupingを使用します。すべてのテーブル操作で、同じデータスコープを一貫して使用してください。 - v9 は React Compiler に対応しています。v8 の
'use no memo'による回避策は削除してください。安定したrow/cell/column/headerオブジェクトのみを受け取るネストされたコンポーネントでは、描画する状態を購読する必要があります(Subscribe/useSelector)。 useLegacyTableは一時的な移行用ブリッジとしてのみ扱ってください。すべての機能をバンドルし、状態全体の購読を維持するため、v9 の主なコンポーザビリティの利点には対応していません。- 列の固定には、論理的な
start/end領域を使用します(left/rightではありません)。集計は独立したrowAggregationFeatureであり、columnGroupingFeatureとは別の機能です。
検証
まず、リポジトリに既存のチェックがあれば、それを優先してください。TanStack Table に意味のある変更を加える場合は、関連する項目を含めてください。
- 使用する v9 API が利用可能であることを証明するパッケージ/バージョンチェック。
- 機能の登録、列定義、状態スライス、行モデルのスロットに対する型チェック。
- 並べ替え、フィルタリング、ページネーション、選択、セル選択、展開、ピン留め、サイズ変更、セルの結合、サーバークエリとの統合に関する対象を絞ったインタラクションテスト。
- レンダリングされたマークアップ、キーボード/フォーカスの動作、固定または仮想化されたレイアウト、サイズ変更/スクロールのパフォーマンスに関するブラウザースモークテスト。
- 大規模なテーブル、仮想化、列幅の変更に対する本番ビルドまたはプロファイリングの実行。
コメント
Markdown 対応