概要
shadcn/ui の Table コンポーネントの使い方について解説します。 このコンポーネントは、React アプリケーションで静的または動的なテーブルを簡単に作成するためのコンポーネントです。
インストール方法
まず、shadcn/ui ライブラリから Table コンポーネントをインストールします。以下のコマンドを使用します。
このコマンドを実行すると、Table コンポーネントが src/components/ui/table.tsx
にインストールされます。
Table コンポーネントの実装
src/components/ui/table.tsx
には以下の複数のコンポーネントが定義されています。
細かい調整は、使用する際に className
を指定するか、このファイルを編集して行います。
- Table:
<table>
に相当 - TableHeader:
<thead>
に相当 - TableBody:
<tbody>
に相当 - TableFooter:
<tfoot>
に相当 - TableRow:
<tr>
に相当 - TableHead:
<th>
に相当 - TableCell:
<td>
に相当 - TableCaption:
<caption>
に相当
文字は背景色の設定は src/index.css
ファイルを編集することで行います。
--muted-foreground
: キャプチャ、ヘッダの文字色--muted
: ホバー、選択した行の背景色
静的なテーブルを作成する
ここでは、Table コンポーネントを使用して静的なテーブルを作成する方法について説明します。 以下は、商品の一覧を表示する簡単なテーブルの例です。
次に、このテーブルコンポーネントをアプリケーションに組み込みます。
動的なテーブルを作成する
TanStack Table を使用して、動的なテーブルを作成するサンプルです。
1. TanStack をインストール
2. カラムの定義
src/payment
ディレクトリを作成し、その配下に以下の 2 つのファイルを作成します。
src/payment/columns.tsx
: カラムの定義src/payment/data.tsx
: テーブルの実装
カラムは、TanStack Table の ColumnDef 型の配列として、定義します。
解説:
データの配列の要素のインタフェースを定義しています。
テーブルに表示するカラムの定義を行っています。
accessorKey
: 渡された配列の各要素で、データにアクセスするために使用されるプロパティ名header
: ヘッダの表示名
3. テーブルの実装
次に、動的なテーブルの実装を行います。以下は、src/payment/payment-table.tsx
の内容です。
プロパティとして、カラムの定義 columns
とデータ data
を受け取ります。
解説:
useReactTable
フックを使用して、テーブルを作成します。
- API
table.getHeaderGroups()
を使用してヘッダ情報を取得し、テーブルのヘッダを作成します。
- API
- HeaderGroup: 複数のヘッダから成るヘッダグループ
- Header: 複数のカラムから成るヘッダ
- Column: カラム
- ColumnDef: カラムの定義
table.getRowModel()
を使用してデータを取得し、テーブルのボディを作成します。
データが存在しない場合は、「データなし」と表示します。
コメント