DataTable

数据表格:列定义驱动,内置排序、全局搜索、分页与行选择,并支持加载骨架与空状态;排序、分页、选择均可受控或非受控。

属性

属性类型默认值说明
columnsDataTableColumn<T>[]—列定义数组
dataT[]—数据行数组
getRowId(row, index) => string—行唯一键,默认取 row.id,缺失时回退到原始下标
titleReactNode—工具栏左侧标题
captionReactNode—表格标题(caption)
sortDataTableSortState | null—受控排序状态,null 表示未排序
defaultSortDataTableSortState | null—非受控初始排序状态
onSortChange(sort) => void—排序变化回调
selectablebooleanfalse显示行选择列
selectedKeysstring[]—受控选中行 key
defaultSelectedKeysstring[]—非受控初始选中行 key
onSelectionChange(keys) => void—选中行变化回调
searchablebooleanfalse工具栏显示全局搜索框
searchstring—受控搜索词
onSearchChange(value) => void—搜索词变化回调
globalFilterFn(row, query) => boolean—自定义全局搜索匹配
paginationbooleantrue是否启用分页,默认 true
pagenumber—受控当前页(从 1 开始)
onPageChange(page) => void—当前页变化回调
pageSizenumber10每页条数
pageSizeOptionsnumber[]—每页条数选项,传入后显示选择器
loadingbooleanfalse加载态,渲染骨架行
loadingRowsnumber—骨架行数,默认取当前每页条数
emptyReactNode—自定义空状态内容
variant'outline' | 'plain''outline'外观:'outline' | 'plain'
size'sm' | 'md' | 'lg''md'行内边距与字号:'sm' | 'md' | 'lg'
stripedbooleanfalse斑马纹
hoverablebooleantrue悬停高亮,默认 true
stickyHeaderbooleanfalse表头吸顶(需给容器设置高度或 maxHeight)
toolbarReactNode—工具栏右侧自定义内容
labelsPartial<DataTableLabels>—覆盖内置文案(搜索、全选、分页等)
...restHTMLAttributes—其余属性透传给原生 div