npm 包 @bretkikehara/react-table 使用教程

前言

在 Web 开发中,表格展示数据是非常常见的一种 UI 元素,而对于前端来说,去手写一个可复用的表格组件是颇为繁琐的一项任务。但好在现在有很多第三方的表格组件库可供使用,并且这些组件库常常非常易用,且可以超出你的预期。其中,就包括 npm 包 @bretkikehara/react-table。

@bretkikehara/react-table 是一个基于 React 的表格组件库。其提供的功能非常丰富,包括排序、过滤、分页、自定义表头和单元格、行拖动、表头固定、响应式布局等。本篇文章将开展使用 @bretkikehara/react-table 的教程,以及合理的代码示例和详细讲解。

安装和使用 @bretkikehara/react-table

要使用 @bretkikehara/react-table,可以直接运行以下命令进行安装:

--- ------- -------------------------

安装成功后,我们即可在项目中使用 @bretkikehara/react-table。使用前,需要导入表格组件:

------ ------ - ------- - ---- --------
------ ----- ---- ----------------------------

接下来,我们定义表格的配置项和数据源:

----- ---- - -
  - ----- --------- ---- --- ---- ------ --
  - ----- ------- ---- --- ---- -------- --
  - ----- ------- ---- --- ---- -------- --
--

----- ------- - --------
  -- -- -
    -
      ------- -------
      --------- -------
    --
    -
      ------- ------
      --------- ------
      --------- --------
    --
    -
      ------- ------
      --------- ------
    --
  --
  --
--

data 数组是表格的数据源,每个对象代表一行数据。而 columns 数组是表格的列配置项,定义表头和数据列的映射关系。

最后,我们在 JSX 模板中使用 @bretkikehara/react-table 组件将配置项和数据源应用到表格中:

------ ----------------- ----------- --

酱紫,我们就使用 @bretkikehara/react-table 创建了一个非常基本的表格。

实现表格排序

很多新手在创建表格时,都希望表格可以支持排序或筛选的功能,因为这对预览表格数据和对数据分析非常有帮助。

@bretkikehara/react-table 组件库有一个非常好用的排序功能,它可以让我们非常容易地给表格数据排序。接下来,我们看下如何使用这个功能。

覆盖 sortType

@bretkikehara/react-table 的排序功能是非常强大的,它能够自动推断排序方式和排序格式,而且可以根据不同的排序需求来使用不同的排序方式。

-
  ------- ------
  --------- ------
  --------- --------
--

在这个例子中,我们将 accessor 设置为了 'age' ,sortType 设置为了 'basic' 。这里的 'basic' 让 @bretkikehara/react-table 知道 'age' 是一个普通的数据类型,应该使用基本的排序方式进行排序。

如果我们设置 sortType 为其他值(如 'datetime','alphanumeric'),表格就会使用其他对应的排序方式,这对于不同类型的排序需求非常有帮助。

内部实现

@bretkikehara/react-table 会根据用户传递给组件的属性,内部构建一个所谓的“实例”,这个实例包含了全部的配置信息和数据用于处理业务逻辑和渲染。如果想要控制表格排序,只需要在 columns 配置项中,将 sortType 设置成对应的字符串即可。

默认情况下,@bretkikehara/react-table 会按照以下的顺序执行排序:

  • 调用传入的 sortType 函数;
  • 如果没有传入,根据 accessor 所提供的值的数据类型执行排序;
  • 如果 accessor 提供的是一个数组,就按提供的顺序执行排序;
  • 如果以上都返回 null,则调用默认的排序方式。

实现筛选

筛选,指的是将表格某一列的数据根据管理员所设置的条件过滤掉一些数据。这个功能可以让用户更加容易地发现所需的数据。

@bretkikehara/react-table 组件库甚至还支持对单个数据列或多个数据列同时进行筛选。它提供了给列传递 filters 属性的选项,从而可以让你非常轻松地实现表格筛选功能。

columns 配置

-
  ------- -------
  --------- -------
  ------------ ------- ------
  ------- --------------------
--

我添加了 placeholder 属性、Filter 属性和 defaultColumn 属性。placeholder 能够给出一个占位符,它会在输入框为空的时候显示出来,很多人会选择用它来提示用户进行输入。

Filter 属性是一个 react 组件,用于渲染筛选表单。这里,它使用了内置的默认的列 filter,你可以完全自定义 Filter 组件的外观和行为。

defaultColumn 属性是另外一个重要属性,它允许你为某个表格属性在不传递 Filter 属性时配置一个默认的筛选器。

实现筛选功能

@bretkikehara/react-table 提供了一个 useFilters 钩子能够帮助我们很容易地在应用组件之间传递和处理筛选器器。只要在 useTable 上调用它就可以自动隐式渲染任何筛选表格的组件。

----- - -------------- ------------------ ------------- ----- ---------- - - ---------
  -
    --------
    -----
  --
  ----------
--

在这个例子中,useTable 的第二个参数是 useFilters,这告诉 useTable 我们希望使用上述 API 来使用筛选器。

实现表格分页

表格分页,是指将数据分割成页面内的小部分以便更清晰地展示和处理数据。在很多情况下,您可能需要显示非常大的数据集,不过将它们分割成更小的部分可以让页面加载得更快,让用户体验更佳。当然,@bretkikehara/react-table 也提供了一个强大的分页功能。

分页选项

----- -
  --------------
  ------------------
  -------------
  -----
  -----------
  ------------
  ------ - ---------- -------- --
  ---------
  -------------
  ------------
  ----------------
  -----
  ---------
  ----------
  ------------
- - ---------
  -
    --------
    -----
    ------------- - ---------- - --
  --
  -----------
  -------------
--

在这个例子中,我添加了 usePagination 钩子。使用 usePagination 钩子后,你将获得许多分页选项,例如:

  • pageIndex - 当前显示区域的页码(从0开始);
  • pageSize - 当前分页的大小;
  • pageCount - 可分页的总数量;
  • page - 当前所展现的页面数据;
  • setPageIndex - 设置当前显示区域的页码;
  • gotoPage - 更具体地设置当前显示区域的页码,并跳转到那个页面;
  • nextPage 和 previousPage - 跳转到下一页和上一页。

基本实现

在要使用分页功能的组件中,我们需要加入@bretkikehara/react-table 的 useTable 钩子,同时也要在 useTable 上调用 usePagination 来启用分页功能:

----- - -------------- ------------------ ------------- ----- ---------- - - ---------
  -
    --------
    -----
  --
  -------------
--

这个话,我们带着一个默认配置的表格,加上了数据分页的功能。这样,我们的 @bretkikehara/react-table 已经可以支持简单的分页操作。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065f75238a385564ab689d


猜你喜欢

  • npm 包 @mpurusottamc/url2png 使用教程

    什么是 npm 包 @mpurusottamc/url2png? npm 包 @mpurusottamc/url2png 是一种基于 Node.js 和 PhantomJS 技术的工具,它可以将任何 ...

    3 年前
  • npm 包 nimkernels2 使用教程

    介绍 nimkernels2 是一个基于 WebAssembly 技术的高性能数学计算库,具有快速、准确、稳定等特点。它提供了多种快速数学计算函数,包括向量、矩阵、四元数、插值等,可以满足各种数学计算...

    3 年前
  • npm 包 lkconverter 使用教程

    前言 lkconverter 是一个基于 node.js 的 npm 包,它可以将位于两个地球坐标系下的经纬度信息进行转换。在前端开发中,有时需要将经纬度信息从 WGS84 坐标系转换为 GCJ02 ...

    3 年前
  • npm 包 zs-toolkit 使用教程

    简介 zs-toolkit 是一个集成了多个常用工具函数的 npm 包,旨在为前端开发人员提供便捷的函数库,从而提高开发效率。 安装 在命令行中输入以下命令安装 zs-toolkit: --- ---...

    3 年前
  • npm 包 @abskmj/cligen 使用教程

    前言 在前端开发中,我们经常需要在命令行运行一些任务来加速我们的工作流程。然而,命令行的使用对于一些前端开发工程师来说并不是非常方便。 npm 包 @abskmj/cligen 就是为了解决这个问题而...

    3 年前
  • npm 包 kelp-next 使用教程

    随着前端技术的不断发展,现在开发者们需要掌握更多的技能来帮助他们完成更多的功能。其中,npm 包 kelp-next 是一个非常强大的工具,能够帮助前端开发者更加高效地进行开发。

    3 年前
  • npm 包 node-red-contrib-emax-servo 使用教程

    前言 在前端开发中,我们经常需要使用各种 npm 包来辅助我们的开发。本篇文章将带你详细介绍一个 npm 包 —— node-red-contrib-emax-servo,以及如何使用它来控制电机舵机...

    3 年前
  • npm 包 pb-tab 使用教程

    pb-tab 是一个基于 React 的 tab 组件,提供了丰富的 API 和可扩展性,可以轻松实现各种定制化的 tab 标签页功能。本教程将详细介绍 pb-tab 的安装、使用和扩展方法,帮助开发...

    3 年前
  • npm 包 rs317outboundmessages 使用教程

    在前端开发中,使用一些现成的库或工具包能够极大地提高开发效率和代码质量。其中,npm (Node Package Manager) 是一个非常方便的包管理工具,而 rs317outboundmessa...

    3 年前
  • npm包@freeliu/date使用教程

    前言 为了提高开发效率、简化代码、避免重复造轮子,我们使用更多的第三方依赖,其中 npm 是最常用的依赖管理工具。在目前日渐繁荣的前端生态系统中,有越来越多的 npm 包被开发出来,以供我们使用。

    3 年前
  • npm 包 atlas-quintic-smoothing 使用教程

    如果你正在寻找一种能够光滑地过渡计算机图形动画的方法,那么 atlas-quintic-smoothing 可能是你需要的工具。它是一个 npm 包,提供了一种使用 Quintic Hermite S...

    3 年前
  • npm 包 cordova-plugin-bdasr-f 使用教程

    介绍 cordova-plugin-bdasr-f 是一个用于在 Cordova 中集成百度 Asr 语音识别的 npm 包。通过使用这个包,你可以在你的 Cordova 项目中集成百度 Asr 语音...

    3 年前
  • npm 包 object-fetch 使用教程

    简介 在前端开发中经常需要请求后端接口获取数据,而发起 HTTP 请求又是一个非常常见的操作。Node.js 中常用的 http 模块可以直接发起 HTTP 请求,但是它的使用方式显得比较繁琐。

    3 年前
  • npm 包 mysql-skema 使用教程

    什么是 mysql-skema mysql-skema 是一个用于生成 MySQL 数据库模式的 npm 包,它可以通过简单的编程方式来生成模式,同时还提供了一些辅助函数来查询模式。

    3 年前
  • npm 包 react-redux-simple-form 使用教程

    React-Redux-Simple-Form 是一个用于管理 React 表单状态的 npm 包。它能够快速简便的创建表单,并且通过 Redux 的状态管理能够方便地处理表单的各种操作和验证,提高了...

    3 年前
  • npm 包「stellaris-ironman-auto-copy」使用教程

    1. 前言 在 Web 前端开发中,我们经常会使用各种 npm 包来帮助我们完成一些工作。本文介绍的 npm 包「stellaris-ironman-auto-copy」就是一款非常有用的工具包,它可...

    3 年前
  • npm包webpack-env-plugin使用教程

    在前端开发的过程中,使用webpack打包工具是很常见的操作方式。在使用webpack打包工具的过程中,有一个非常重要的插件--webpack-env-plugin,该插件可以帮助开发者在不同的环境中...

    3 年前
  • npm 包 atlas-cubic-smoothing 使用教程

    在前端开发中,经常需要对数据进行处理,并进行平滑处理以达到更好的可视化效果。这时候,Atlas-Cubic-Smoothing 成为了一个非常好的选择。在本文中,我们将介绍 Atlas-Cubic-S...

    3 年前
  • npm 包 goodnum 使用教程

    好的数字 (GoodNum) 是一个用于格式化数字的 npm 包。它可以将数字转换为极大的数字(如以亿为单位)并添加千位分隔符,从而让数字更易于阅读。这篇文章将介绍 goodnum 的用法,包括安装、...

    3 年前
  • npm 包 mini-unassert 使用教程

    在前端开发中,我们不可避免地会使用到各种 npm 包,其中一个有用的包就是 mini-unassert。这个包可以帮助我们在生产环境中自动移除 assert 语句,减小文件大小,提高代码效率。

    3 年前

相关推荐

    暂无文章