OSS探訪GitHubでログイン

表示方法を決めずに、表の並べ替え、絞り込み、ページ分割を組み立てるヘッドレスライブラリ

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
28,474
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/04
ページ内ナビ

概要

TanStack Tableは、表のデータ処理と状態管理を、HTMLや見た目から切り離して扱うヘッドレスライブラリです。React、Vue、Svelteなどの画面部品に合わせて、並べ替え、絞り込み、ページ分割を組み込めます。

特徴と向いている用途

実機検証あり(下記の環境・範囲に限定) · 内容確認日:

主な特徴

何を処理できるか

列定義と行データから中間モデルを作り、必要な機能だけを登録できます。固定版のコアAPIでは、点数の降順と1ページ2件の処理をつなぎ、表示対象の行を取り出せます。

出典:[1][2][3]

向いている用途

どの場面に合うか

独自の表デザインや操作性を保ちつつ、大量データの並べ替えやページ分割を一貫した状態として管理したい画面に向きます。サーバー側で処理する場合は、手動モードと総件数を明示します。

出典:[2][3]

導入前の確認

導入前に確認する点

画面やアクセシビリティ対応を自動生成する部品ではなく、最終的なHTMLと操作は利用側が実装します。9.2.6はNode.js 20以上が必要です。GitHubと固定コミットのLICENSEはMITです。

出典:[3][4][5]

9.2.6 / macOS, Node.js 26.7.0, isolated temporary npm project

Executed the pinned @tanstack/table-core API example and verified Grace,Ada; no browser or external service was used.

参考にした公式資料

  1. [1]TanStack/table README at 2df4cf3673dc(2026-10-05)
  2. [2]Table official documentation(2026-10-05)
  3. [3]@tanstack/table-core 9.2.6 package source(2026-10-05)
  4. [4]TanStack/table LICENSE at 2df4cf3673dc(2026-10-05)
  5. [5]TanStack/table GitHub metadata(2026-10-05)
編集部からの補足

既存のデザインを保ったまま表の状態処理を共通化したい場合に適します。まずコアAPIだけで並べ替え後の先頭ページが期待どおりになるか確かめると、画面層との境界を判断できます。

3ステップで試す

  1. 1

    固定版のコアを準備する

    Node.js 20以上とnpmが必要です。一時ディレクトリにtable-core 9.2.6を固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/tanstack-table.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact @tanstack/table-core@9.2.6
  2. 2

    並べ替えとページ分割を構成する

    名前と点数の列を定義し、点数の降順に並べて1ページを2件にする行モデルを構成します。

    printf '%s\n' 'import {constructTable,createColumnHelper,createPaginatedRowModel,createSortedRowModel,rowPaginationFeature,rowSortingFeature,tableFeatures} from '\''@tanstack/table-core'\''' 'import {storeReactivityBindings} from '\''@tanstack/table-core/store-reactivity-bindings'\''' 'const features=tableFeatures({coreReactivityFeature:storeReactivityBindings(),rowSortingFeature,sortedRowModel:createSortedRowModel(),rowPaginationFeature,paginatedRowModel:createPaginatedRowModel()})' 'const h=createColumnHelper()' 'const table=constructTable({features,data:[{id:'\''ada'\'',name:'\''Ada'\'',score:91},{id:'\''grace'\'',name:'\''Grace'\'',score:98},{id:'\''linus'\'',name:'\''Linus'\'',score:87}],columns:h.columns([h.accessor('\''name'\'',{header:'\''Name'\''}),h.accessor('\''score'\'',{header:'\''Score'\''})]),getRowId:r=>r.id,initialState:{sorting:[{id:'\''score'\'',desc:true}],pagination:{pageIndex:0,pageSize:2}}})' 'console.log(table.getRowModel().rows.map(r=>r.getValue('\''name'\'')).join('\'','\''))' > demo.mjs
  3. 3

    表示対象の行を検証する

    最初のページが点数の高いGrace、Adaの順だけになることを確認します。

    test "$(node demo.mjs)" = "Grace,Ada"
公式READMEで確認

成長

成長の推移 · 直近30日

28,474 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
9
Open PR
28

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • react
  • table
  • datagrid
  • datatable
  • grid
  • datagrids
  • hooks
  • sorting
  • filtering
  • grouping
  • pagination
  • reactjs
Stars
28,474
Forks
3,587
Watchers
178
Open Issues
49
Contributors
457
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/04

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?