网站首页 > 基础教程 正文
介绍
今天要介绍的是一个在react生态中的一个表格组件——ka-table,正如标题,ka-table是一个具有排序、筛选、分组、虚拟化、编辑功能的React表格组件。可定制、可扩展、轻量级和免费的React Table组件!
Github
https://github.com/komarovalexander/ka-table
安装
- npm
npm install ka-table
- 或者yarn
yarn add ka-table
主要特性
- 表格内编辑
针对不同数据类型的编辑器开箱即用,具有良好的定制能力,由于定制功能,你可以扩展自己所需的任何组件与表格集成
- 事件
所有可能的事件都可以添加到childElements
- 筛选
使用带有可自定义编辑器的预定义筛选器行或使用扩展筛选器
- 分组功能支持
单元格和行自定义支持分组
- 表格搜索
实现搜索功能很方便
- 表格数据选择
支持多选和单选
- 状态保持
保存表的状态并在页面重新加载后恢复它
- 编辑验证
在应用编辑器值之前验证它
- 虚拟滚动
虚拟化可以很好地处理大量数据和分组,主要是通过虚拟滚动实现的
- 远程数据
最基本的案例
import "ka-table/style.css";
import React, { useState } from 'react';
import { ITableProps, kaReducer, Table } from 'ka-table';
import { DataType, EditingMode, SortingMode } from 'ka-table/enums';
import { DispatchFunc } from 'ka-table/types';
const dataArray = Array(10).fill(undefined).map(
(_, index) => ({
column1: `column:1 row:${index}`,
column2: `column:2 row:${index}`,
column3: `column:3 row:${index}`,
column4: `column:4 row:${index}`,
id: index,
}),
);
const tablePropsInit: ITableProps = {
columns: [
{ key: 'column1', title: 'Column 1', dataType: DataType.String },
{ key: 'column2', title: 'Column 2', dataType: DataType.String },
{ key: 'column3', title: 'Column 3', dataType: DataType.String },
{ key: 'column4', title: 'Column 4', dataType: DataType.String },
],
data: dataArray,
editingMode: EditingMode.Cell,
rowKeyField: 'id',
sortingMode: SortingMode.Single,
};
const OverviewDemo: React.FC = () => {
const [tableProps, changeTableProps] = useState(tablePropsInit);
const dispatch: DispatchFunc = (action) => {
changeTableProps((prevState: ITableProps) => kaReducer(prevState, action));
};
return (
<Table
{...tableProps}
dispatch={dispatch}
/>
);
};
export default OverviewDemo;
总结
总体来说ka-table是一个非常不错的React表格组件,相对于一般普通表格来说,功能上更加强大,其扩展性又很好的解决了一些复杂场景的需求!
猜你喜欢
- 2024-11-21 广州蓝景分享—16个非常有用的React组件库,前端开发必备
- 2024-11-21 03 React组件(Component)
- 2024-11-21 如何设计更优雅的 React 组件?
- 2024-11-21 React 也就这么回事 05 —— 组件 & Props
- 2024-11-21 2022年前端React的100道面试题的第7题:组件的constructor
- 2024-11-21 前端开发react框架 - 组件
- 2024-11-21 React-组件的两种创建方式
- 2024-11-21 放弃 React 改用 Web 组件,微软这次重构让开发者不解:没有任何意义
- 2024-11-21 React系列十 - 高阶组件以及组件补充
- 2024-11-21 面试官:说说对React中类组件和函数组件的理解?有什么区别?
- 最近发表
-
- Vue3+Bootstrap5项目初始化 vue 项目初始化
- 前端程序员不得不爱的bootstrap 前端 bom
- 保姆级软路由刷机+软路由OpenWRT入门设置,新手轻松搭建软路由
- 好东西!iOS 16.5 半越狱分屏功能,教你正确安装
- Python数据可视化Dash开源库Bootstrap之折叠列表Accordion
- 终于发布!iOS 16.5 越狱工具已发布,分屏插件有效
- 超爽!iOS 16.6.1 Bootstrap 半越狱更新,有通知
- 好玩!iOS 16.6.1 半越狱玩法,这插件真生效
- 来啦!iOS 16.6.1 nathanlr 半越狱,被迫公测体验
- iOS 17.0 Bootstrap 1.2.9 半越狱来啦!更新两点
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)