📅  最后修改于: 2023-12-03 15:34:41.429000             🧑  作者: Mango
ReactJS 是一款非常流行的 JavaScript 库,而表格是前端页面中最常用的数据展示方式之一。本文将介绍如何使用 ReactJS 制作简单的表格和一些扩展组件库。
制作基础表格包含三个步骤:创建表头、创建表体和渲染表格。
表头可以使用 HTML <thead>
元素来定义,同时可以在其中使用 <th>
元素来定义列名。我们可以通过创建一个函数来返回表头内容:
const renderTableHeader = () => {
return (
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
);
};
表体可以使用 HTML <tbody>
元素来定义,同时可以在其中使用 <tr>
元素来定义行,使用 <td>
元素来定义单元格内容。我们可以通过创建一个函数来返回表体内容:
const renderTableBody = () => {
return (
<tbody>
<tr>
<td>John</td>
<td>30</td>
<td>London</td>
</tr>
<tr>
<td>Jane</td>
<td>25</td>
<td>New York</td>
</tr>
<tr>
<td>Bob</td>
<td>40</td>
<td>Tokyo</td>
</tr>
</tbody>
);
};
创建完毕表头和表体后,我们可以将它们组合起来渲染出完整的表格:
const Table = () => {
return (
<table>
{renderTableHeader()}
{renderTableBody()}
</table>
);
};
这样我们就可以使用 <Table />
组件来显示表格了。
一些扩展的 ReactJS 组件库提供了一些更加灵活的表格功能,比如支持排序、分页等。下面是两个比较流行的组件库:
React Table 提供了使用数据分页、排序、过滤的灵活性,并且非常容易自定义。
npm install react-table
import ReactTable from 'react-table';
import 'react-table/react-table.css';
const ReactTableComponent = () => {
const data = [
{ name: 'John', age: 30, city: 'London' },
{ name: 'Jane', age: 25, city: 'New York' },
{ name: 'Bob', age: 40, city: 'Tokyo' },
];
const columns = [
{ Header: 'Name', accessor: 'name' },
{ Header: 'Age', accessor: 'age' },
{ Header: 'City', accessor: 'city' },
];
return <ReactTable data={data} columns={columns} />;
};
React Bootstrap Table Next 是一个非常流行的表格组件库,它提供了基于 Bootstrap 样式的表格组件和丰富的配置选项,支持远程数据加载、分页、排序、筛选等功能。
npm install react-bootstrap-table-next react-bootstrap-table2-paginator react-bootstrap-table2-filter
import BootstrapTable from 'react-bootstrap-table-next';
import paginationFactory from 'react-bootstrap-table2-paginator';
import filterFactory, { textFilter } from 'react-bootstrap-table2-filter';
const BootstrapTableComponent = () => {
const columns = [
{ dataField: 'name', text: 'Name', filter: textFilter() },
{ dataField: 'age', text: 'Age', sort: true },
{ dataField: 'city', text: 'City', filter: textFilter() },
];
const data = [
{ name: 'John', age: 30, city: 'London' },
{ name: 'Jane', age: 25, city: 'New York' },
{ name: 'Bob', age: 40, city: 'Tokyo' },
];
const paginationOptions = {
sizePerPage: 5,
hideSizePerPage: true,
hidePageListOnlyOnePage: true,
};
return (
<BootstrapTable
keyField='name'
data={data}
columns={columns}
pagination={paginationFactory(paginationOptions)}
filter={filterFactory()}
/>
);
};
ReactJS 本身提供了一些基础的表格渲染功能,而一些扩展组件库则提供了更加复杂灵活的表格功能。我们可以根据自己的需求来选择适合的组件库。