Data Table
用于需要排序、筛选、分页或行选择的数据集合。简单静态行使用 Table。
预览
工作区项目管理
通过同一表格状态搜索与筛选项目、排序、跨页选择行及调整每页数量。
正在加载预览。
安装
首次使用此 Registry?请先完成 基础配置与共享样式安装 。
npx shadcn@latest add @neumorphism-ui/data-table先安装一次共享 base,然后使用 CLI 添加组件及其依赖。
工作区项目管理
npx shadcn@latest add @neumorphism-ui/data-table @neumorphism-ui/checkbox @neumorphism-ui/input @neumorphism-ui/select @neumorphism-ui/button用法
定义数据与列,创建包含所需功能的 TanStack 表格并传给 DataTable。将搜索、列标题和分页连接到同一个表格实例。
"use client";
import { columnVisibilityFeature, rowSelectionFeature, rowSortingFeature, tableFeatures, useTable } from "@tanstack/react-table";
import { DataTable } from "@/components/ui/data-table";
const features = tableFeatures({ columnVisibilityFeature, rowSelectionFeature, rowSortingFeature });
const data = [{ name: "Atlas", seats: 12 }, { name: "Beacon", seats: 4 }];
const columns = [
{ accessorKey: "name", header: "Project", enableSorting: false },
{ accessorKey: "seats", header: "Seats", enableSorting: false },
];
export default function Example() {
const table = useTable({ features, data, columns });
return <DataTable table={table} caption="Workspace projects" />;
}API 参考
调用方的TanStack Table管理数据和状态,组件负责渲染。示例用稳定行ID在筛选和翻页后保留选择,数据均为示意。
| 组件 | 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
DataTable | table | ReactTable<TFeatures, TData> | — | 包含行模型和状态的TanStack Table实例。 |
DataTable | caption / emptyMessage / children | string / ReactNode | — | 表格标题、空结果文本及搜索筛选工具。 |
DataTablePagination | labels / pageSizes | PaginationLabels / number[] | — | 本地化分页文本并设置每页行数。 |
无障碍
- 01
提供表格标题、aria-sort及键盘可聚焦的滚动区域。
- 02
区分当前页选择和总选择数量,服务端分页需由调用方管理选择状态。