npm 包 react-grid-blues 使用教程

阅读时长 12 分钟读完

简介

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

纠错
反馈