Skip to main content

表格 Table

这是一个基于 React.forwardRef 封装的表格组件集合,提供一致的样式、结构化语义以及扩展能力,适配现代 UI 设计规范(如 shadcn/ui 风格)。


📦 引入方式

import {
Table,
TableBody,
TableCaption,
TableCell,
TableFooter,
TableHead,
TableHeader,
TableRow,
} from '@npmqg/react-ui-table';

🧩 使用示例

最近交易记录
订单号商品金额
#1001MacBook Pro¥ 12,999
#1002iPhone 15¥ 8,999
总计¥ 21,998

🧩 组件结构

组件名描述属性类型默认值描述
Table表格容器classNamestring表格容器自定义类名
TableHeader<thead> 表头部分classNamestring表头部分自定义类名
TableBody<tbody> 主体部分classNamestring主体部分自定义类名
TableFooter<tfoot> 表尾部分classNamestring表尾部分自定义类名
TableRow<tr>classNamestring行自定义类名
data-statestring自定义样式切换
TableHead<th> 表头单元格scopestring表头单元格的作用域
colSpannumber列跨度
rowSpannumber行跨度
TableCell<td> 表格单元格classNamestring单元格自定义类名
checkboxbooleanfalse是否嵌套 checkbox 结构,自动调整 padding
TableCaption<caption> 表格标题classNamestring表格标题自定义类名

🎨 默认样式特性(TailwindCSS)

📚TableRow

  • 行 hover 高亮:hover:bg-muted/50
  • 支持 data-state="selected" 变色高亮:data-[state=selected]:bg-muted

📚TableHead

  • 文本左对齐、字体中等、颜色淡化:text-muted-foreground

📚TableCell

  • 默认内边距:p-2
  • 若包含 role=checkbox 子元素,则自动去除右 padding

🧠 设计理念

  • 表格组件使用语义化 HTML 元素封装,确保无障碍(A11y)友好
  • 与 Tailwind 工具类无缝结合,样式灵活、响应式良好
  • 组件化拆分易于组合、扩展(如插入选择框、操作列)

💡 Tips

  • 可结合 <ScrollArea> 使用,避免在固定容器中溢出
  • 推荐搭配 react-table, @tanstack/react-table 使用,实现数据驱动表格
  • 若需排序、筛选、分页等功能,建议使用表格状态管理库进行扩展