美文网首页
table大量数据无分页- virtualizedtablefo

table大量数据无分页- virtualizedtablefo

作者: lemonzoey | 来源:发表于2019-06-25 19:03 被阅读0次

项目技术栈 react+antd+axios

antd中的table组件基本默认的是数据有分页的情况,实际业务中会有这种情况,需要一次性展示接口返回的全部数据,后台不做分页,假如有1000条数据,则直接返回1000条数据,供用户操作。

大量数据时候要对表格进行操作的话,性能就很低,会出现页面卡死的情况。这时候就需要优化表格性能了。

刚开始想用antd的list中的滚动加载无限长度列表组件,下面是对react-virtualized的介绍

结合 react-virtualized 实现滚动加载无限长列表,带有虚拟化(virtualization)功能,能够提高数据量大时候长列表的性能。
virtualized 是在大数据列表中应用的一种技术,主要是为了减少不可见区域不必要的渲染从而提高性能,特别是数据量在成千上万条效果尤为明显。了解更多

但是这个组件里面使用的list,我需要对table进行多选框的各种操作,就放弃了这种方式,当然若是不需要这种操作,可以直接使用antd这个list的组件了。

然后问度娘,度娘给我提供了个插件 virtualizedtableforantd 完美解决了我这个问题。
使用方法

import React from 'react'
import { Table,} from 'antd'
import {VTComponents} from 'virtualizedtableforantd'
class Demo extends React.Component {
render(){
  return <Table 
             className='templateTable'
             dataSource={dataSource}  //dataSource 是table的数据
             // bordered
             rowSelection={rowSelection} //多选的相关操作
             columns={this.columns} 
             pagination={false}
             rowKey={record=> record.id}
             scroll={{ x: '130%', y: 500 }}  //y: 500 it's important!!!
            /*the id is immutable   the height prop is variable */
             components={VTComponents({ id: 1000 })} // 这是最核心的代码
          />
}
}

就这样就完美的解决了性能的问题。这里y:500是确定了这个table的高度为500,加载完数据后,就展示500高度的数据,当向下滑动滚动条后,就开始加载后面的数据。这样就解决了table数据过多的性能问题了。

注意VTComponents({ id: 1000 })里面id一定是number类型,若有多个table用到了这个插件,记得id要不一样,不然会有问题。

相关文章

  • table大量数据无分页- virtualizedtablefo

    项目技术栈 react+antd+axios antd中的table组件基本默认的是数据有分页的情况,实际业务中会...

  • react antd Form 切换Table分页后Table内

    问题描述:react antd Form 切换Table分页后Table内Input数据丢失问题处理 处理思路:在...

  • antd Table 上拉加载更多数据

    背景 table不分页 然而数据又很多,所以数据需要做分页加载 查找antd 没找到上下拉加载对应的API 故自己...

  • bootstrap table后端分页,请求数据成功,页面不显示,报错Object.entries is not ...

  • Java面试的一些问题

    数据库 如何实现数据库的分页? Mysql:可用这个模式select * from table where 条件 ...

  • bootstrap-table 服务器分页 (spring 后台

    最近前端都是用的bootstrap table这个插件,客户端分页的话数据量一多交互不好,所以大数据量的分页都用服...

  • iview - 笔记

    1. table 序号分页后序号从1开始 2. table 前端分页 3. table里面的按钮 ,需要用re...

  • 表格与表单

    表格 table常用标签 table常用属性 传统布局 表单 分页

  • Laravel使用心得

    插入大量数据优化: DB::table('users')->insert(array( array('em...

  • sql优化

    1. 大量数据的分页查询 有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,...

网友评论

      本文标题:table大量数据无分页- virtualizedtablefo

      本文链接:https://www.haomeiwen.com/subject/jhwxcctx.html