React中使用表格:第一部分

用于呈现数据的最常见的用户界面元素之一是表格。事实证明,使用表格时需要控制很多方面,例如:

定义列和标题各种单元格格式(文本、数字、复选框)调整大小过滤动态成长样式

在这个由两部分组成的系列中,您将了解使用 React Bootstrap Table 组件在 React 中处理表格数据的细节。您将能够轻松创建复杂且具有专业外观的表格,并且能够自定义各个方面。

开始使用

 

首先,您应该熟悉 React 本身。如果您需要 React 入门知识,Envato Tuts+ 有一个很棒的系列可以帮助您开始使用 React。在本教程中,我们将重点关注 React Bootstrap Table2 的使用。

首先,使用 create-react-app 命令创建一个 React 应用。您可以在 React 初学者速成课程中了解如何设置 create-react-app

create-react-app react-table-app

现在导航到项目文件夹并安装 React Bootstrap Table 2 和 Bootstrap。

cd react-table-appnpm install react-bootstrap-table-next --savenpm install --save bootstrap@4.0.0

创建基本表

我们将从一个基本表格开始。我们首先导入 BootstrapTable 组件和 CSS,如下所示。

import logo from './logo.svg';import './App.css';import React, { Component } from 'react';import '../node_modules/bootstrap/dist/css/bootstrap.min.css'; import BootstrapTable from 'react-bootstrap-table-next'; 

首先,我们初始化数据和列变量,然后将数据赋值给BootstrapTable组件。该数据包含搞笑节目《发展受阻》中一些角色的名字。

const data = [  {id: 1, name: 'Gob', value: '2'},  {id: 2, name: 'Buster', value: '5'},  {id: 3, name: 'George Michael', value: '4'}];const columns = [{  dataField: 'id',  text: 'Product ID'}, {  dataField: 'name',  text: 'Product Name'}, {  dataField: 'value',  text: 'Product value'}]; 

Bootstrap 组件采用以下属性。

keyFielddata

render() 方法呈现一个包含三列的表:“ID”、“名称”和“值”。

class App extends Component {  render() {    return (      

Basic Table

); }}

要查看该表,请发出命令 npm start--reload。由 create-react-app 创建的配置会监视您的代码,并在您更改任何内容时重新编译,因此您只需运行它一次。然后,每个更改都会自动反映出来。

Compiled successfully!You can now view my-table-app in the browser.  Local:            https://localhost:3002  On Your Network:  http://192.168.43.206:3002Note that the development build is not optimized.To create a production build, use npm run build.

结果如下:

React中使用表格:第一部分

请注意,每列的宽度相同。

使用列

您可以控制列的许多方面。特别是,列宽可以用绝对单位、百分比来指定,也可以不指定。未指定列的列宽为均分后的余数。例如,对于我们的基本表,我们指定列如下:

第一列:20%第二列:6​​0%第三列:20%

您还可以管理文本和列的对齐方式以及标题和列的样式。以下是如何指定不同列宽、文本对齐方式和自定义样式的示例:

const columns = [{  dataField: 'id',  text: 'Product ID',  headerStyle: (colum, colIndex) => {          return { width: '20%', textAlign: 'center' };        }}, {  dataField: 'name',  text: 'Product Name',  sort: true,  headerStyle: (colum, colIndex) => {          return { width: '60%', textAlign: 'center' };        }}, {  dataField: 'value',  text: 'Product value',  headerStyle: (colum, colIndex) => {          return { width: '20%', textAlign: 'center' };        }  }]; 

表格现在看起来像这样:

React中使用表格:第一部分

设计您的表格

您已经了解了如何设置各个列和标题的样式,但样式设置可以走得更远。 React Bootstrap 表 2 提供了很多定制选项。首先,您只需将 stripedhover 属性添加到 BootstrapTable 组件即可获取每行的备用背景颜色。

飞书多维表格 飞书多维表格

表格形态的AI工作流搭建工具,支持批量化的AI创作与分析任务,接入DeepSeek R1满血版

飞书多维表格 26 查看详情 飞书多维表格

让我们将 stripedhover 属性应用到我们的表中。

class App extends Component {  render() {    return (      

Basic Table

); }}

React中使用表格:第一部分

查看如何使用不同颜色设置不同列的样式。

const columns = [{  dataField: 'id',  text: 'Product ID',  style: { backgroundColor: #00afb9 }}, {  dataField: 'name',  text: 'Product Name',  style: { backgroundColor: #fdfcdc }}, {  dataField: 'value',  text: 'Product value',  style: { backgroundColor: #fed9b7 }}]; 

React中使用表格:第一部分

表格排序

React Bootstrap Table 2 允许对列进行排序。这是通过在 columns 定义中提供 sort: true 属性来完成的。

const columns = [{  dataField: 'id',  text: 'Product ID',  style: { backgroundColor: #00afb9 }}, {  dataField: 'name',  text: 'Product Name',  style: { backgroundColor: #fdfcdc },  sort: true}, {  dataField: 'value',  text: 'Product value',      style: { backgroundColor: #fed9b7 }}]; 

选择行

将数据放入表中后,您可能需要选择某些行来对它们执行某些操作。 React Bootstrap 表 2 提供了多种选择选项。所有选项都组织在一个对象中,您可以将其作为 selectRow 属性传递给组件。以下是一些选择选项:

单选模式(单选按钮)多选模式(复选框)可配置的列选择宽度在行单击上选择:默认情况下,您必须单击选择器(单选按钮或复选框)隐藏选择列(如果在行单击上选择为 true 则很有用)更改选择的背景颜色初始选定行选择挂钩(在单行上或选择所有行时)。

以下组件演示了其中许多选项:

React中使用表格:第一部分

React 中数据表的其他库

让我们探索一些其他开源 React 表库。

反应虚拟化

react-virtualized 非常适合在渲染大型列表和表格数据时有效地显示大量数据。

react-virtualized 使用一种称为虚拟渲染的技术来有效地显示大量数据。虚拟渲染仅渲染可见的内容。例如,如果您有一个包含一千个项目的大型列表,react-virtualized 将在任何给定时刻仅显示一小部分数据(适合屏幕的数据),直到用户滚动以显示更多数据。其他功能包括:

支持网格、列表、表格、砌体和集合的渲染能够自动调整组件大小能够以相反的顺序显示项目能够自定义 CSS 类和样式

反应表

react-table 是一个轻量级的开源库,允许为 React 提供快速且可扩展的数据网格。它还支持钩子。它的一些最佳功能包括:

高度可定制支持排序、过滤器、行选择、列排序和行扩展完全可控的 API可动画且可虚拟可调整大小

反应数据网格

React Data Grid 是另一个使用 Bootstrap 的开源库,非常适合编辑表格。它还具有令人惊叹的用户界面。功能包括:

列排序、搜索、过滤和分组能够编辑列展开列以显示更多数据

结论

在本教程中,我们使用create-react-app创建了一个简单的React应用程序,添加了react-bootstrap-table2,用数据填充表,处理列,设置表样式并选择行。

在下一部分中,我们将通过扩展行、添加行、删除行以及分页、单元格编辑和高级自定义来继续这个旅程。敬请关注。

以上就是React中使用表格:第一部分的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/531961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 11:00:52
下一篇 2025年11月9日 11:06:00

相关推荐

  • 掌握 React useState 中嵌套数组状态的不可变更新

    在 react 应用中使用 `usestate` 管理复杂状态时,更新对象内部的数组类型值是一个常见挑战。本文将深入探讨如何在不替换整个数组的前提下,安全、高效地向 `usestate` 管理的嵌套数组中添加、修改或删除元素。我们将重点介绍利用 javascript 展开运算符(spread ope…

    2025年12月5日
    200
  • 在React Native中集成Voximplant实现语音通话功能

    本教程详细介绍了如何在React Native应用中集成Voximplant,实现端到端的语音通话功能。内容涵盖Voximplant控制面板的必要配置,包括VoxEngine场景和路由规则的设置,以及React Native客户端的用户登录、发起语音通话和处理来电的实现步骤。通过清晰的代码示例和注意…

    2025年12月5日
    000
  • React中怎么使用Portals渲染组件?

    react portal 允许将组件渲染到 dom 树之外,解决布局限制问题。1. 使用 reactdom.createportal 方法,指定要渲染的组件和目标 dom 节点;2. 创建 dom 节点并挂载到合适的位置(如 document.body);3. 在组件卸载时清理 dom 节点以避免内…

    2025年12月4日 web前端
    000
  • VSCode怎么激活代码提示_VSCode开启和配置智能代码提示功能教程

    答案:VSCode代码提示不工作通常因缺少语言扩展或配置不当。需安装对应语言扩展(如Python、C#),确保文件类型正确,配置jsconfig.json/tsconfig.json或settings.json,排除无关目录,并重启语言服务器以提升准确性。 VSCode的代码提示功能,也就是我们常说…

    2025年12月4日
    000
  • Parlant— 开源的大模型AI Agent开发框架

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 千帆大模型平台 面向企业开发者的一站式大模型开发及服务运行平台 0 查看详情 Parlant是什么 parlant是开源的llm(大型语言模型)代理行为建模引擎,帮助开发者快速创建符合业务要求的…

    2025年12月4日 科技
    000
  • React中如何使用useEffect钩子?

    useeffect 是 react 中用于处理副作用的 hook,它接受回调函数和依赖项数组两个参数。1. 回调函数在组件渲染后执行,用于处理数据获取、订阅事件等副作用;2. 依赖项数组控制回调执行时机,空数组表示仅首次执行,包含变量则在其变化时执行;3. 可以返回清理函数,在组件卸载或下一次 ef…

    2025年12月4日 web前端
    000
  • VSCode怎么出现波浪线_VSCode错误提示和语法检查功能说明教程

    VSCode中的波浪线是语言服务、Linter和编译器协同提供的实时反馈,红色表示错误(如语法错误),黄色表示警告(如未使用变量),绿色或下划线表示建议(如代码优化),通过悬停查看提示、检查配置文件(如tsconfig.json、.eslintrc)、使用“问题”面板(Ctrl+Shift+M)定位…

    2025年12月4日
    100
  • VSCode怎么补全标题标签_VSCodeHTML标题标签自动补全教程

    VSCode可通过Emmet语法、插件或自定义代码片段实现HTML标题标签自动补全。①使用Emmet:输入h1后按Tab生成 ,支持h1{文本}等扩展语法;②配置Emmet:在settings.json中设置”emmet.includeLanguages”: {“…

    2025年12月3日
    000
  • VSCode怎么创建父子工程_VSCode多模块项目管理教程

    答案是打开根目录或使用多根工作区管理多模块项目。VSCode通过语言扩展解析构建文件识别父子关系,推荐打开根目录以实现自动识别与统一管理,或使用多根工作区整合逻辑关联但物理独立的项目,结合Maven/Gradle等扩展增强开发体验。 在VSCode里管理父子工程,或者说多模块项目,核心思路并不是VS…

    2025年12月3日
    000
  • 如何在 Material UI 仪表盘中实现实时数据更新功能

    在material ui仪表盘中实现实时数据更新的核心方法包括使用websocket、轮询和react query。首先,使用websocket实现双向通信适用于高频低延迟场景,通过前端连接后端主动推送并更新react状态;其次,轮询方式适合大多数中小型项目,利用setinterval定期请求api…

    2025年12月3日 软件教程
    000
  • Workerman如何实现自动化测试?Workerman测试框架集成?

    答案:Workerman自动化测试需应对常驻内存带来的状态管理、异步并发、资源隔离等挑战。通过设计独立测试模式、模拟Connection对象进行单元测试、剥离业务逻辑、使用PHPUnit配合进程隔离,并在集成测试中启动专用Workerman实例与模拟客户端交互,可有效实现对其异步服务的全面测试。 W…

    2025年12月3日
    100
  • VSCode怎么用NodeJS联想_VSCode配置NodeJS智能提示与补全教程

    答案:要让VSCode中Node.js代码拥有智能提示和自动补全,需确保项目包含package.json、配置jsconfig.json文件、正确安装第三方库及其@types类型定义。首先通过npm init -y创建package.json,再安装依赖如express,并用npm install …

    2025年12月3日
    000
  • JavaScript的Array.prototype.slice方法是什么?怎么用?

    javascript的array.prototype.slice方法用于从现有数组中提取指定索引范围的元素并生成新数组,且不会修改原数组。1. 它接受两个可选参数begin和end,begin指定开始索引(默认为0,负数表示从末尾倒数),end指定结束索引(不包含该索引元素,默认为数组末尾);2. …

    2025年12月3日 web前端
    000
  • Laravel API开发?API路由如何定义?

    Laravel通过routes/api.php定义API路由,使用Route::apiResource或HTTP动词方法声明端点,由RouteServiceProvider自动添加/api前缀和api中间件组,确保无状态处理。与web.php的Web路由不同,API路由不依赖Session和CSRF…

    2025年12月3日
    000
  • 开发“变现”的媒体APP,只需4步!

    在内容为王的时代抢占先机?打造一款具备强大功能并能持续盈利的媒体APP是制胜关键!无需再被繁琐技术或不清晰的盈利模式困扰,只需四个步骤,就能开启你的媒体APP开发与商业化之路: ? 第一步:精准定位与市场调研——锁定你的专属“赛道” 明确核心价值:你的APP能为用户解决什么问题?(例如:新闻整合、短…

    2025年12月3日
    000
  • 在同一项目中集成 Preact 和 React

    本文旨在介绍如何在大型 React 项目中逐步迁移部分组件到 Preact,同时保持与现有 React 代码的兼容性。通过使用 preact/compat 库,可以在无需引入微前端架构的情况下,实现 Preact 和 React 组件的共存和无缝通信。本文将详细介绍配置步骤,并讨论在无法使用 pre…

    2025年12月3日
    000
  • 网页SQL删除操作如何实现_网页实现SQL删除数据的方法

    网页实现SQL删除操作需通过前后端协作完成,前端触发请求并发送数据ID至后端,后端经身份验证、权限校验及参数验证后,使用参数化查询执行DELETE语句,确保安全防止SQL注入,最终由数据库完成数据移除。 网页实现SQL删除数据,本质上是通过前端界面触发一个请求,这个请求被发送到后端服务器。后端服务器…

    2025年12月3日 数据库
    000
  • 网页如何实现数据分析SQL_网页实现SQL数据分析的步骤

    核心是通过后端服务实现SQL数据分析,前端发送请求,后端验证权限、生成SQL查询并执行,处理结果后以JSON返回,前端再可视化数据,确保安全与性能。 网页实现SQL数据分析,核心并不是让浏览器直接运行SQL命令,而是通过构建一个强大的后端服务,让它作为前端和数据库之间的桥梁。前端页面发起数据请求,后…

    2025年12月3日 数据库
    000
  • KPL梦之队团综《时差5小时》即将上线,斗鱼Gemini抢先陪看讲述沙特幕后故事

    在本月的电竞世界杯赛场,KPL梦之队以全胜之姿夺冠,向世界展示了中国电竞的热血与梦想。8月26日,KPL梦之队团综《时差5小时》即将上线,上线当晚8点,梦之队教练Gemini将在斗鱼抢先陪伴水友观看《时差5小时》第一期正片,开启“葛大爷的小灶时刻”,带你重温沙特那些热血又爆笑的故事。 梦之队由%ig…

    2025年12月3日 行业动态
    000
  • React 和 Vite 为什么不自动加载 CSS ?

    React 还是 Vite 都不会自动加载 CSS 在 React 项目中,如果不引入 CSS 文件,在 class 属性中使用样式类名并不会自动引入 CSS 效果。 然而,在你的案例中,页面出现了 CSS 效果可能是因为使用了第三方库(如 AntD),其中包含了 JSX 组件,而这些组件会在引入时…

    2025年12月2日 web前端
    000

发表回复

登录后才能评论
关注微信