vue element-ui弃用el-table 改换pl-table

一、背景

        界面显示5000条数据,el-table 直接卡死,原因就是因为el-table 采用的是DOM 内存占用过多,引起阻塞

二、解决方案

  1. 懒加载:即监听scroll事件或使用IntersecionObserver监听;

  2. 可视区域的渲染:仅在可视区域展示数据,为保证滚动条的完整性,非可视区域使用占位元素的高度后者容器的位移来撑开。

三、整合pl-table

        1、安装pl-tablb 建议采用cnpm i 

npm i pl-table
cnpm i pl-table
yarn - pl-table

        2、main.js 引入,整个框架采用的是element-ui 所以不引人第二个样式,使用原生的element-ui样式 

import plTable from 'pl-table'
import 'pl-table/themes/index.css' // 引入样式(必须引入),vuecli3.0不需要配置,cli2.0请查看webpack是否配置了url-loader对woff,ttf文件的引用,不配置会报错哦
// import 'pl-table/themes/plTableStyle.css' // 默认表格样式很丑 引入这个样式就可以好看啦(如果你不喜欢这个样式,就不要引入,不引入就跟ele表格样式一样)
Vue.use(plTable);

        3、使用

<el-table border size="mini" class="table-ui" max-height="700" :stripe="true" :data="tableData" @row-dblclick="rowDblclick" @selection-change="changeFun"   @sort-change="sortChange" >
    <el-table-column prop="sequenceNum" label="序号"></el-table-column>
    <el-table-column prop="countyName" label="县(市、"></el-table-column>
    <el-table-column prop="streetName" label="乡镇(街"></el-table-column>
    <el-table-column prop="groupName" label="村(组)"></el-table-column>
</el-table>
<pl-table border size="mini" class="table-ui" max-height="700" :stripe="true" :data="tableData" @row-dblclick="rowDblclick" @selection-change="changeFun"   @sort-change="sortChange" big-data-checkbox  fixedColumnsRoll use-virtual>
    <pl-table-column prop="sequenceNum" label="序号"></pl-table-column>
    <pl-table-column prop="countyName" label="县(市、"></pl-table-column>
    <pl-table-column prop="streetName" label="乡镇(街"></pl-table-column>
    <pl-table-column prop="groupName" label="村(组)"></pl-table-column>
</pl-table>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值