0.0.16 • Published 2 years ago

react-better-table v0.0.16

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

组件描述

antd是一个非常流行的组件库,里面的table组件功能非常强大,但是对于税友这种以财、税、票为核心的业务场景,对表格的使用和要求会更高一些,不管是功能性还是性能,antd的table都不能满足我们的要求,所以我们打算重新开发一个全新的表格,部分逻辑和API设计参考了antd的table,整体上会比antd的table更加好用,且易于维护。

vs antd Table

与antd Table对比,react-better-table有以下的主要优势:

  • 支持虚拟滚动
  • 支持列宽自动分配
  • 支持列宽可拖动
  • 自定义滚动条
  • 高性能勾选
  • 全新的无数据展示方案
  • 其他若干优化点

详细介绍

在线文档和demo

文档、demo链接

table-api

参数说明类型默认值
data数据数组object[],注意:object中key是必填项[]         
columns表格列的配置描述,详见下面的Column配置object[][]
empty自定义无数据ReactNode-
summary配置合计行,注意:leafColumns是平铺的数组(多行表头时,只返回叶子列数组),返回值对象里必须携带dataIndex(leafColumns, data) => column[]-
rowSelection表格行是否可选择,具体配置项详见下面的 rowSelectionobject-
virtual开启并配置虚拟滚动,具体配置详见下面的:virtualobject-
onSortChange点击排序按钮时触发的事件function(column, columnDataIndex, order)-

column-api

参数说明类型默认值
title表格标题string、ReactNode-
dataIndex列数据在数据项中对应的 key,支持 a.b.c 的嵌套写法string-
width列宽number-
minWidth最小列宽,表格拉宽时,列宽会自动按比例放大number-
scroll设置表体固定高度、最大高度,如:{ height: 'calc(100vh - 100px)' }{ maxHeigth: 200 }object-
rowHoverEffectEnabled鼠标悬浮在行上方时,底色加深的效果booleantrue
ellipsis内容超出显示省略号booleanfalse
fixed固定列设置,可选值:'left'、'right'string-
shouldCellUpdate自定义单元格渲染时机(preRecord, nextRecord) => boolean-
sortable对应列是否可以排序,如果设置为 'custom',表示用户希望自定义排序,需要与onSortChange配合使用string-
defaultSortOrder默认的排序状态,可选值:'ascending'、 'descending'、 nullstring-
sortOrder受控的排序状态,可选值:'ascending'、 'descending'、 nullstring-
sortOrders排序时所使用排序策略的轮转顺序,需传入一个数组,随着用户执行排序,该列依次按照数组中元素的顺序进行排序[]'ascending', 'descending', null
renderFilterDropdown自定义筛选下拉面板() => ReactNode-
filterIcon自定义筛选iconReactNode-
getFilterPopupContainer自定义筛选下拉面板的渲染容器() => HTMLElementdocument
render自定义渲染函数,参数为:当前行的值,当前行数据,行索引,当前列宽(text, record, index, width) => any-
onRow设置行属性function(record, index)-
onHeaderRow设置表头行属性function(columns, index)-
onHeaderCell设置表头单元格属性function(column)-
onCell设置单元格属性function(record, rowIndex)-

rowSelection-api

参数说明类型默认值
type多选、单选,可选项:'checkbox'、 'radio'string'checkbox'
fixed把选择框列固定在左边,当columns配置了左固定列时,内部会自动转为truebooleanfalse
columnTitle自定义列表选择框标题ReactNode-
columnWidth自定义列表选择框宽度number62
selectedRowKeys指定选中行的 key 数组,需要和 onChange 进行配合string[]number[]
defaultSelectedRowKeys默认选中项的 key 数组string[]number[]
onChange选中项发生变化时的回调function(selectedRowKeys, selectedRows)-
onSelectAll用户手动选择/取消选择所有行的回调function(selected, selectedRows)-
onSelect用户手动选择/取消选择单行的回调function(record, selected, selectedRows, nativeEvent)-
getSelectionProps选择框的属性配置,不能设置checked、defaultChecked、onChange,因为这些在rowSelection中已经处理了function(record)-
renderCell自定义渲染function(checked, record, index, originNode)-

virtual-api

参数说明类型默认值
lineHeight每行的高度number-
delayTime滚动条滚动后触发下一屏渲染的防抖时间(单位:ms),值越大,滚动条拖动越流畅,但加载中状态持续时间越长,请自行权衡利弊取合适的值number10