web前端[React库]:第三方组件库react-table

Posted 技术直升机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web前端[React库]:第三方组件库react-table相关的知识,希望对你有一定的参考价值。


react-table(https://react-table.js.org)是React应用的一个灵活的表格组件。他有很多有用的接口,例如过滤、排序等。


第一步:

安装react-table库:


npm install react-table


下面以github的rest接口获取数据,用react-table展示数据,接口如下:


https://api.github.com/search/repositories?q=keyword


第二步:

创建一个App.js文件,写入如下代码用来调用上面的rest接口获取数据:


import React, { useState } from 'react';import './App.css';
function App() { const [data, setData] = useState([]); const [keyword, setKeyword] = useState(''); const fetchData = () => { const url = `https://api.github.com/search/repositories?q=${keyword}`; fetch(url) .then(response => response.json()) .then(responseData => { setData(responseData.items); }); } const handleChange = (e) => { setKeyword(e.target.value); } return ( <div className="App"> <input type="text" onChange={handleChange} /> <button onClick={fetchData} value={keyword} >fetch</button> </div> );}
export default App;


第三步:

导入react-table组件与样式


import ReactTable from "react-table";import 'react-table/react-table.css';


第四步:

将获取的数据填入react-table


<ReactTable data={data} columns={columns} />


第五步:

创建列对象columns及其每列的属性


const columns = [{ Header: 'Name', // Header of the column  accessor: 'full_name' // Value accessor }, { Header: 'URL', accessor: 'html_url', }, { Header: 'Owner', accessor: 'owner.login',}]


第六步:

将react-table组件添加到return语句中,代码如下所示:


const columns = [{ Header: 'Name', // Header of the column  accessor: 'full_name' // Value accessor }, { Header: 'URL', accessor: 'html_url', }, { Header: 'Owner', accessor: 'owner.login', }]
return ( <div className="App"> <input type="text" onChange={handleChange} /> <button onClick={fetchData} value={keyword} >fetch</button> <ReactTable data={data} columns={columns} /> </div>);


第七步:

运行app,页面具有排序和分页功能,如下图所示


web前端[React库]:第三方组件库react-table


第八步:

默认是没有过滤功能的。下面添加过滤功能以及设置默认分页数。


<ReactTable data={this.state.data} columns={columns}   filterable={true}   defaultPageSize = {10}/>   


运行程序如下图所示:



第九步:

增加一个按钮列


const btnClick = (value) => { alert(value);}


const columns = [{ Header: 'Name', // Header of the column accessor: 'full_name' // Value accessor }, { Header: 'URL', accessor: 'html_url', }, { Header: 'Owner', accessor: 'owner.login', }, { id: 'button', sortable: false, filterable: false, width: 100, accessor: 'full_name',   Cell({value}) => (<button onClick={() => {btnClick(value)}}>Press me</button>)}]


运行程序,如下所示:



需要完整工程的可以给我留言。




个人网站:


https://mapleeureka.github.io/index-ch.html


以上是关于web前端[React库]:第三方组件库react-table的主要内容,如果未能解决你的问题,请参考以下文章

web前端中,vue和react哪个现在市场需求比较大?

从0到1教你搭建前端团队的组件系统(高级进阶必备)

十大常用web前端UI组件库,赶紧收藏

高质量 Vue/React/Angular 统一前端组件库

[React Native] mcloud-mobile 组件发布

[React Native] mcloud-mobile 组件发布