Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-better-table

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-better-table

基于react开发的易于维护、性能较好的表格组件

  • 0.0.16
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-40%
Maintainers
1
Weekly downloads
 
Created
Source

react-better-table

组件描述

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

vs antd Table

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

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

详细介绍

在线文档和demo

文档、demo链接

table-api

参数说明类型默认值
draggable是否开启可伸缩列booleantrue
data数据数组object[],注意:object中key是必填项[]         
columns表格列的配置描述,详见下面的Column配置object[][]
scroll设置表体固定高度、最大高度,如:{ height: 'calc(100vh - 100px)' }{ maxHeigth: 200 };设置滚动位置,如:{top: 100, left: 100}object-
empty自定义无数据ReactNode-
rowHoverEffectEnabled鼠标悬浮在行上方时,底色加深的效果booleantrue
summary配置合计行,注意:leafColumns是平铺的数组(多行表头时,只返回叶子列数组),返回值对象里必须携带dataIndex(leafColumns, data) => column[]-
rowSelection表格行是否可选择,具体配置项详见下面的 rowSelectionobject-
virtual开启并配置虚拟滚动,具体配置详见下面的:virtualobject-
onSortChange点击排序按钮时触发的事件function(column, columnDataIndex, order)-
onDragEnd拖动列宽后的回调函数(可通过该函数获取最新列宽,重新设置columns,进而规避因为表格重绘导致列宽复原的问题)function(column: { dataIndex: string, newWidth: number })-
onScroll滚动后触发的回调function(e, direction)-

column-api

参数说明类型默认值
title表格标题string、ReactNode-
dataIndex列数据在数据项中对应的 key,支持 a.b.c 的嵌套写法string-
width列宽number-
minWidth最小列宽,表格拉宽时,列宽会自动按比例放大number-
ellipsis内容超出显示省略号booleanfalse
align表体对齐方式:'left'、'center'、'right'string'left'
headerAlign表头对齐方式:'left'、'center'、'right'string'center'
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自定义列表选择框标题(originNode: ReactNode) => string、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        

FAQs

Package last updated on 22 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc