跳转到内容

Table 表格

何时使用

  • 当有大量结构化的数据需要展现时;
  • 当需要对数据进行排序、搜索、分页、自定义操作等复杂行为时。

如何使用

代码演示

基本用法

loading

JSX 风格的 API

loading

可选择

loading

选择和操作

loading

自定义选择项

loading

筛选和排序

loading

树型筛选菜单

loading

自定义筛选的搜索

loading

多列排序

loading

可控的筛选和排序

loading

自定义筛选菜单

loading

远程加载数据

loading

紧凑型

loading

带边框

loading

可展开

loading

特殊列排序

loading

表格行/列合并

loading

树形数据展示

loading

固定表头

loading

固定列

loading

堆叠固定列

loading

固定头和列

loading

隐藏列

loading

表头分组

loading

测试debug

loading

API

Table

参数说明类型默认值版本
bordered是否展示外边框和列边框booleanfalse
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<[SemanticDOM], string> | (info: { props })=> Record<[SemanticDOM], string>-
columns表格列的配置描述,具体项见下表ColumnsType[]-
components覆盖默认的 table 元素TableComponents-
dataSource数据数组object[]-
expandable配置展开属性expandable-
footer表格尾部function(currentPageData)-
getPopupContainer设置表格内各类浮层的渲染节点,如筛选菜单(triggerNode) => HTMLElement() => TableHtmlElement
loading页面是否加载中boolean | Spin Propsfalse
locale默认文案设置,目前包括排序、过滤、空数据文案object默认值
pagination分页器,参考配置项pagination 文档,设为 false 时不展示和进行分页object | false-
rowClassName表格行的类名function(record, index): string-
rowKey表格行 key 的取值,可以是字符串或一个函数string | function(record): stringkey
rowSelection表格行是否可选择,配置项object-
rowHoverable表格行是否开启 hover 交互booleantrue5.16.0
scroll表格是否可滚动,也可以指定滚动区域的宽、高,配置项object-
showHeader是否显示表头booleantrue
showSorterTooltip表头是否显示下一次排序的 tooltip 提示。当参数类型为对象时,将被设置为 Tooltip 的属性boolean | Tooltip props & {target?: 'full-header' | 'sorter-icon' }{ target: 'full-header' }5.16.0
size表格大小large | middle | smalllarge
sortDirections支持的排序方式,取值为 ascend descendArray[ascend, descend]
sticky设置粘性头部和滚动条boolean | {offsetHeader?: number, offsetScroll?: number, getContainer?: () => HTMLElement}-4.6.0 (getContainer: 4.7.0)
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<[SemanticDOM], CSSProperties> | (info: { props })=> Record<[SemanticDOM], CSSProperties>-
summary总结栏(currentData) => VNode-
tableLayout表格元素的 table-layout 属性,设为 fixed 表示内容不会影响列的布局- | auto | fixed
固定表头/列或使用了 column.ellipsis 时,默认值为 fixed
title表格标题function(currentPageData)-
virtual支持虚拟列表boolean-5.9.0
onChange分页、排序、筛选变化时触发function(pagination, filters, sorter, extra: { currentDataSource: [], action: paginate | sort | filter })-
onHeaderRow设置头部行属性function(columns, index)-
onRow设置行属性function(record, index)-
onScroll表单内容滚动时触发(虚拟滚动下只有垂直滚动会触发事件)function(event)-5.16.0

Table ref

参数说明类型版本
nativeElement最外层 div 元素HTMLDivElement5.11.0
scrollTo滚动到目标位置(设置 key 时为 Record 对应的 rowKey)。当指定 offset 时,表格会滚动至目标行顶部对齐并应用指定的偏移量。offsettop 无效(config: { index?: number, key?: VueKey, top?: number, offset?: number }) => void5.11.0

onRow 用法

适用于 onRow onHeaderRow onCell onHeaderCell

jsx
<Table
  onRow={(record) => {
    return {
      onClick: (event) => {}, // 点击行
      onDoubleClick: (event) => {},
      onContextMenu: (event) => {},
      onMouseEnter: (event) => {}, // 鼠标移入行
      onMouseLeave: (event) => {},
    };
  }}
  onHeaderRow={(columns, index) => {
    return {
      onClick: () => {}, // 点击表头行
    };
  }}
/>

Column

列描述数据对象,是 columns 中的一项,Column 使用相同的 API。

参数说明类型默认值版本
align设置列的对齐方式left | right | centerleft
className列样式类名string-
colSpan表头列合并,设置为 0 时,不渲染number-
dataIndex列数据在数据项中对应的路径,支持通过数组查询嵌套路径string | string[]-
defaultFilteredValue默认筛选值string[]-
filterResetToDefaultFilteredValue点击重置按钮的时候,是否恢复默认筛选值booleanfalse
defaultSortOrder默认排序顺序ascend | descend-
ellipsis超过宽度将自动省略,暂不支持和排序筛选一起使用。
设置为 true{ showTitle?: boolean } 时,表格布局将变成 tableLayout="fixed"
boolean | { showTitle?: boolean } falseshowTitle: 4.3.0
filterDropdown可以自定义筛选菜单,此函数只负责渲染图层,需要自行编写各种交互VNode | (props: FilterDropdownProps) => VNode-
filtered标识数据是否经过过滤,筛选图标会高亮booleanfalse
filteredValue筛选的受控属性,外界可用此控制列的筛选状态,值为已筛选的 value 数组string[]-
filterIcon自定义 filter 图标。VNode | (filtered: boolean) => VNodefalse
filterOnClose是否在筛选菜单关闭时触发筛选booleantrue5.15.0
filterMultiple是否多选booleantrue
filterMode指定筛选菜单的用户界面'menu' | 'tree''menu'4.17.0
filterSearch筛选菜单项是否可搜索boolean | function(input, record):booleanfalseboolean:4.17.0 function:4.19.0
filters表头的筛选菜单项object[]-
filterDropdownProps自定义下拉属性,在 <5.22.0 之前可用 filterDropdownOpenonFilterDropdownOpenChangeDropdownProps-5.22.0
fixed(IE 下无效)列是否固定,可选 true (等效于 'start') 'start' 'end'boolean | stringfalse
key需要的 key,如果已经设置了唯一的 dataIndex,可以忽略这个属性string-
render生成复杂数据的渲染函数,参数分别为当前单元格的值,当前行数据,行索引(value: V, record: T, index: number): VNode-
responsive响应式 breakpoint 配置列表。未设置则始终可见。Breakpoint[]-4.2.0
rowScope设置列范围row | rowgroup-5.1.0
shouldCellUpdate自定义单元格渲染时机(record, prevRecord) => boolean-4.3.0
showSorterTooltip表头显示下一次排序的 tooltip 提示, 覆盖 table 中 showSorterTooltipboolean | Tooltip props & {target?: 'full-header' | 'sorter-icon' }{ target: 'full-header' }5.16.0
sortDirections支持的排序方式,覆盖 TablesortDirections, 取值为 ascend descendArray[ascend, descend]
sorter排序函数,本地排序使用一个函数(参考 Array.sort 的 compareFunction)。需要服务端排序可设为 true(单列排序) 或 { multiple: number }(多列排序)function | boolean | { compare: function, multiple: number }-
sortOrder排序的受控属性,外界可用此控制列的排序,可设置为 ascend descend nullascend | descend | null-
sortIcon自定义 sort 图标(props: { sortOrder }) => VNode-5.6.0
title列头显示文字(函数用法 3.10.0 后支持)VNode | ({ sortColumns, filters }) => VNode-
width列宽度(指定了也不生效?string | number-
minWidth最小列宽度,只在 tableLayout="auto" 时有效number-5.21.0
hidden隐藏列booleanfalse5.13.0
onCell设置单元格属性function(record, rowIndex)-
onFilter本地模式下,确定筛选的运行函数function-
onHeaderCell设置头部单元格属性function(column)-

ColumnGroup

参数说明类型默认值
title列头显示文字VNode-

pagination

分页的配置项。

参数说明类型默认值
placement指定分页显示的位置, 取值为topStart | topCenter | topEnd |bottomStart | bottomCenter | bottomEnd| noneArray[bottomEnd]
position指定分页显示的位置, 取值为topLeft | topCenter | topRight |bottomLeft | bottomCenter | bottomRight | none,请使用 placement 替换Array[bottomRight]

更多配置项,请查看 Pagination

expandable

展开功能的配置。

参数说明类型默认值版本
childrenColumnName指定树形结构的列名stringchildren
columnTitle自定义展开列表头VNode-4.23.0
columnWidth自定义展开列宽度string | number-
defaultExpandAllRows初始时,是否展开所有行booleanfalse
defaultExpandedRowKeys默认展开的行string[]-
expandedRowClassName展开行的 classNamestring | (record, index, indent) => string-string: 5.22.0
expandedRowKeys展开的行,控制属性string[]-
expandedRowRender额外的展开行function(record, index, indent, expanded): VNode-
expandIcon自定义展开图标,参考示例function(props): VNode-
expandRowByClick通过点击行来展开子行booleanfalse
fixed控制展开图标是否固定,可选 true 'left' 'right'boolean | stringfalse4.16.0
indentSize展示树形数据时,每层缩进的宽度,以 px 为单位number15
rowExpandable设置是否允许行展开(dataSource 若存在 children 字段将不生效)(record) => boolean-
showExpandColumn是否显示展开图标列booleantrue4.18.0
onExpand点击展开图标时触发function(expanded, record)-
onExpandedRowsChange展开的行变化时触发function(expandedRows)-
expandedRowOffset废弃:展开行的偏移列数,设置后会强制将其前面的列设为固定列。请改用 Table.EXPAND_COLUMN 并通过列顺序控制位置number-5.26.0

rowSelection

选择功能的配置。

参数说明类型默认值版本
align设置选择列的对齐方式left | right | centerleft5.25.0
checkStrictlycheckable 状态下节点选择完全受控(父子数据选中状态不再关联)booleantrue4.4.0
columnTitle自定义列表选择框标题VNode | (originalNode: VNode) => VNode-
columnWidth自定义列表选择框宽度string | number32px
fixed把选择框列固定在左边boolean-
getCheckboxProps选择框的默认属性配置function(record)-
getTitleCheckboxProps标题选择框的默认属性配置function()-
hideSelectAll隐藏全选勾选框与自定义选择项booleanfalse4.3.0
preserveSelectedRowKeys当数据被删除时仍然保留选项的 keyboolean-4.4.0
renderCell渲染勾选框,用法与 Column 的 render 相同(checked: boolean, record: T, index: number, originNode: VNode): VNode-4.1.0
selectedRowKeys指定选中项的 key 数组,需要和 onChange 进行配合string[] | number[][]
defaultSelectedRowKeys默认选中项的 key 数组string[] | number[][]
selections自定义选择项 配置项, 设为 true 时使用默认选择项object[] | booleantrue
type多选/单选checkbox | radiocheckbox
onCell设置单元格属性,用法与 Column 的 onCell 相同function(record, rowIndex)-5.5.0
onChange选中项发生变化时的回调function(selectedRowKeys, selectedRows, info: { type })-info.type: 4.21.0
onSelect用户手动选择/取消选择某行的回调function(record, selected, selectedRows, nativeEvent)-

scroll

参数说明类型默认值
scrollToFirstRowOnChange当分页、排序、筛选变化后是否滚动到表格顶部boolean-
x设置横向滚动,也可用于指定滚动区域的宽,可以设置为像素值,百分比,true'max-content'string | number | true-
y设置纵向滚动,也可用于指定滚动区域的高,可以设置为像素值string | number-

selection

参数说明类型默认值
key需要的 key,建议设置string-
text选择项显示的文字VNode-
onSelect选择项点击回调function(changeableRowKeys)-

基于 MIT 许可发布