メインコンテンツへスキップ
ホーム/コンポーネント/データ表示/データテーブル

DataTable

データテーブルコンポーネント。列定義・ページネーション・インライン編集をサポート。

import { DataTable } from "@blueai/ui"

Examples

Basic
請求番号取引先金額ステータス
INV-0042株式会社サンプル¥385,000入金済
INV-0041テスト商事¥128,700下書き
INV-0040ABC Holdings¥1,540,000期限超過
INV-0039グローバル・テック¥264,000下書き
INV-0038ネクスト・デザイン¥792,000入金済
Empty
請求番号取引先金額ステータス
データがありません

Props

PropTypeDefaultDescription
columns*DataTableColumn<T>[]列定義 { header, cell?, key?, editable?, format?, mono?, width?, align? }
data*T[]表示データ
rowKey*(row: T, index: number) => string各行の一意キーを返す関数
loadingbooleanローディング状態
emptyMessagestringデータなし時のメッセージ
paginationDataTablePaginationページネーション設定
onCellChange(rowIndex: number, key: string, value: string) => voidインライン編集時のコールバック

ガイドライン

Do
  • ページネーションで表示件数を制限する
  • 主要カラムを左側に配置する
Don't
  • 横スクロール必須になるほどカラムを増やさない
  • 全データを一括表示しない(パフォーマンス低下の原因)

Types

DataTableColumn<T>

type DataTableColumn<T> = {
  header: string;
  cell?: (row: T) => ReactNode;
  key?: string;
  editable?: boolean;
  format?: "number";
  mono?: boolean;
  width?: string;
  align?: "left" | "center" | "right";
};