简介
react-grid-blues 是一个轻量级的 React 表格组件,用于呈现数据、支持排序、筛选、分页和自定义样式。它基于 React Hooks 实现,易于拓展,并提供了丰富的 API 和事件回调。
安装
使用 npm 安装 react-grid-blues 最新版本:
--- ------- ----------------
或者使用 yarn:
---- --- ----------------
使用
使用 react-grid-blues 需要先引入它:
------ ----- ---- -------- ------ ---- ---- ------------------- -- ---- ------ ------------------------------ -- ------
然后配置数据和列的信息:
----- ------- - - - ---- ----- ------ ------ - ---- ------- ------ -------- - ---- ------ ------ ------- -- ----- ---- - - ---- -- ----- ----- ----- ---- ---- ---- -- ----- ----- ----- ---- ---- ---- -- ----- ----- ------- ---- ---- ---- -- ----- ----- ------- ---- ---- --
最后在组件中使用:
----- ----------------- ----------- --
API
下面是 react-grid-blues 的主要 API:
Grid
Grid 组件,用于呈现表格。
Props
columns
: 列信息,必需。data
: 数据,必需。onSort
: 排序事件回调。onFilter
: 筛选事件回调。onPage
: 分页事件回调。pageSize
: 分页大小。pageIndex
: 当前页索引。total
: 总数据量。loading
: 是否正在加载。noDataLabel
: 没有数据时的文本提示。noResultsLabel
: 没有结果时的文本提示。className
: 自定义样式类名。
Column
Column 组件,用于定义列。
Props
key
: 列的唯一标识,必需。title
: 列的标题,必需。width
: 列的宽度。sortable
: 是否可排序。filterable
: 是否可筛选。formatter
: 格式化函数。className
: 自定义样式类名。
Event objects
下面是 react-grid-blues 支持的事件对象。
SortEvent
排序事件对象,记录排序相关的信息。
- ------ ------- -- ---- ---------- ----- - ------- -- ---- -
FilterEvent
筛选事件对象,记录筛选相关的信息。
- ------ ------- -- ---- --------- --------------- -- ---- ------ ---- -- --- -
PageEvent
分页事件对象,记录分页相关的信息。
- ---------- ------- -- ----- --------- ------- -- ---- ------ ------- -- ---- -
Formatter functions
下面是 react-grid-blues 支持的格式化函数。
currency(value: number) -> string
将数字格式化为货币格式。
----- ------- - - - ---- -------- ------ -------- ---------- -------- -- --
date(value: string | Date, format: string) -> string
将日期格式化为特定格式。
----- ------- - - - ---- ------- ------ ------- ---------- ------- -- ----------- ------------- -- --
Filter operators
下面是 react-grid-blues 支持的筛选条件。
Equal
等于
- --------- --------------------- ------ -- -
NotEqual
不等于
- --------- ------------------------ ------ -- -
GreaterThan
大于
- --------- --------------------------- ------ -- -
GreaterThanOrEqual
大于等于
- --------- ---------------------------------- ------ -- -
LessThan
小于
- --------- ------------------------ ------ -- -
LessThanOrEqual
小于等于
- --------- ------------------------------- ------ -- -
Contains
包含
- --------- ------------------------ ------ ------ -
NotContains
不包含
- --------- --------------------------- ------ ------ -
StartsWith
以...开头
- --------- -------------------------- ------ --- -
EndsWith
以...结尾
- --------- ------------------------ ------ --- -
示例代码
下面是一个完整的示例,包含了外部 CSS 样式和事件回调函数:
------ ------ - -------- - ---- -------- ------ ----- - ------- -------------- - ---- ------------------- ------ ------------------------------ ----- ---- - - - --- -- ----- ----- ----- ---- --- ------ ------ ----- ------------ -- - --- -- ----- ----- ----- ---- --- ------ ------ ----- ------------ -- - --- -- ----- ----- ------- ---- --- ------ ------ ----- ------------ -- - --- -- ----- ----- ------- ---- --- ------ ------ ----- ------------ -- -- ----- ------- - - - ---- ----- ------ ----- ------ ------ -- - ---- ------- ------ ------- ----------- ---- -- - ---- ------ ------ ------ ----------- ----- --------- ---- -- - ---- -------- ------ -------- ---------- --------- --------- ---- -- - ---- ------- ------ ------- ---------- ------- -- ----------- -------------- --------- ---- -- -- -------- --------------- - ------ --- - ----------------- - -------- ----------- ------- - ------ --- ---------------------------- ---------- ------ ---------- -------------------- ------------- - -------- ----- - ----- ----------- ------------- - ------------ ----- ---------- ------------ - ------------- ----- --------- ----------- - ------------- -------- ----------------- - ----------------- ------- ------- - -------- ------------------- - ------------------- ------- ------- -------------------- - -------- ----------------- - ----------------- ------- ------- ------------------------------ ---------------------------- - ----- ------------ - ----------------------- ------- -- - ----- -------- - ---------------- ----- ----- - ------------- ------ -------------------- -- - ----- ---------- - ------------------- ------ ---------- - ---- --------------------- ------ ---------- --- ------ ---- ------------------------ ------ ---------- --- ------ ---- --------------------------- ------ ---------- - ------ ---- ---------------------------------- ------ ---------- -- ------ ---- ------------------------ ------ ---------- - ------ ---- ------------------------------- ------ ---------- -- ------ ---- ------------------------ ------ ------------------------------------------- ---- --------------------------- ------ -------------------------------------------- ---- -------------------------- ------ --------------------------------------------- ---- ------------------------ ------ ------------------------------------------- -------- ------ ----- - --- -- ------ ----- -------------- - --------- - --------- ----- ------------ - -------------- - --------- ----- --------- - ---------------------------------- -------------- ----- ----- - -------------------- ------ - ---- ---------------------- ----- ----------------- ---------------- ------------------- ----------------------- ------------------- --------------------- ------------------- ------------- --------------- --------------- ---- ------ ------------------ ------- ------ ------------------- -- ------ -- - ------ ------- ----
参考资料:
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065f91238a385564ab6fab