table-features について
TanStack Table v9 の機能設定を支援するコーディングスキルです。機能の登録や依存関係の確認、目的に応じた参照先の選択を案内します。
主な機能
- 01任意のテーブル機能を登録
- 02機能の前提条件を確認
- 03タスク別に参照先を選択
- 04導入済み機能 API を調査
活用シーン
- 01ソートやフィルタリングの追加
- 02行処理ステージの選択
- 03API が利用できない原因の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tanstack/ table --skill table-featuresインストール後、Claude Code で/table-featuresを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/aggregation.mdcell-selection.mdcell-spanning.mdclient-vs-server.mdcolumn-faceting.mdcolumn-filtering.mdcolumn-ordering.mdcolumn-pinning.mdcolumn-resizing.mdcolumn-sizing.mdcolumn-visibility.mdexpanding.mdglobal-filtering.mdgrouping.mdpagination.mdrow-pinning.mdrow-selection.mdsorting.md詳細
機能アーキテクチャ
ヘッドレスモデルと安定した入力については、まずcoreをお読みください。
テーブルが使用する動作を登録する
import {
createSortedRowModel,
rowSortingFeature,
sortFn_alphanumeric,
tableFeatures,
} from '@tanstack/table-core'
export const features = tableFeatures({
rowSortingFeature,
sortedRowModel: createSortedRowModel(),
sortFns: { alphanumeric: sortFn_alphanumeric },
})
安定したfeaturesオブジェクトを、インストール済みアダプターのコンストラクターに渡します。具体的なレジストリによって、オプションのAPI、オプション、状態スライス、およびそれらの型が決まります。コアの行モデルは自動的に適用されます。カスタムのコアモデルを使用する場合は、coreRowModelを指定します。
登録ルール
- 同じ
tableFeatures呼び出し内では、依存するスロットより先に、各前提機能を登録してください。処理ファクトリーだけでは、その機能のAPIや状態をインストールできません。 - 行モデルファクトリーには、
create*RowModel()機能スロットを使用します。名前と前提条件は機能リファレンスに記載されています。関数レジストリの引数は不要です。 filterFns、sortFns、aggregationFnsはテーブルオプションではなく、機能スロットです。それぞれcolumnFilteringFeature、rowSortingFeature、rowAggregationFeatureが必要です。sortFn_alphanumericなどの組み込み機能を個別にインポートし、慣例に従ったキーを登録します。これらのキーは型付きの文字列名となり、'auto'で解決できるのは登録済みの関数だけです。列に名前付きレジストリエントリが不要な場合は、関数を直接渡してください。レジストリの完全版のエクスポートには、すべての組み込み機能が含まれます。columnResizingFeatureにはcolumnSizingFeatureが必要です。globalFilteringFeatureにはcolumnFilteringFeatureが必要です。その他の依存関係については、インストール済みのFeatureSlotPrereqsを確認してください。- 通常の構築では、明示的な機能を使用してください。
stockFeaturesは、すべての機能を含む利便性のため、または一時的な移行支援として意図的に使用するものであり、それに応じたバンドルコストが発生します。
APIが見つからない場合は、登録が不足している可能性があります。型アサーションを行ったり、APIを再作成したり、v9で削除されたと判断したりする前に、具体的な機能オブジェクトを確認してください。
要求された変更に応じて参照資料を選ぶ
要求された動作とその依存関係(追加する機能を含む)に必要な参照資料だけを読みます。テーブルに登録済みの無関係な機能があっても、その参照資料を読む必要はありません。
| タスクの内容 | 読む資料 |
|---|---|
| 手動モード、サーバーデータ、混在する行処理ステージ、またはデータセットのスコープ | クライアント/サーバーの所有権 |
| 合計、複数の集計、グループ化された集計値、またはカスタム集計定義 | 集計 |
| ファセットの選択肢数、数値範囲、または不完全なサーバーファセット | 列のファセット |
| 列ごとのフィルター、フィルター関数、メタデータ、または入れ子になった行のフィルタリング | 列のフィルタリング |
| 行のグループ化、プレースホルダー、または展開/ページネーションを伴うグループ化 | グループ化 |
| ドラッグによる並べ替え、またはリーフ列の順序が状態と異なる場合 | 列の順序 |
| 固定列領域、論理的な始点/終点、または固定時の隙間 | 列の固定 |
| ドラッグによるサイズ変更ハンドル、ジェスチャーイベント、またはサイズ変更のパフォーマンス | 列のサイズ変更 |
| 数値の幅、最小/最大の制限、またはモデルと CSS のサイズの不一致 | 列幅 |
| 非表示列、表示状態を考慮したレンダリング、または非表示コントロール | 列の表示設定 |
| 列をまたいだ検索、またはグローバルフィルターの対象条件 | グローバルフィルタリング |
| 階層化されたサブ行、詳細パネル、または展開とページ操作の連携 | 展開 |
| ページ分割、件数、ナビゲーション、またはページインデックスのリセット | ページネーション |
| 上部/下部に固定する行、または現在のページ外での行の表示状態 | 行の固定 |
| 矩形のセル選択、範囲の包含/除外、またはドラッグによるアウトライン | セル選択 |
| 本文セルの結合、対象セル、または行順に応じて変化するスパン | セルのスパン |
| 行のチェックボックス、すべて選択、Shift による範囲選択、またはページをまたぐ ID | 行選択 |
| ソート、比較関数、未定義値、またはソート操作のサイクル | ソート |
状態の制御やリセット動作については、共有状態を読み、リアクティブな連携のためにインストール済みアダプターの状態スキルも読み込みます。
インストール済み API の調査
スロットと FeatureSlotPrereqs を確認するには、node_modules/@tanstack/table-core/dist/types/TableFeatures.d.ts を調べます。正確な状態、オプション、インスタンスの宣言については、dist/features/<feature>/ を参照します。各参照資料には、対応する機能のディレクトリが記載されています。