在 B/S 架构中,经常会遇到大数据渲染问题,毕竟 javascript 是单线程。
在使用 table 时,用户需要在上面做大量操作时,就需要考虑页面的渲染问题了。
导致卡顿原因:
数据量过多导致浏览器一次性渲染过多的 DOM,导致 DOM 树占用内存溢出,使得用户操作阻塞。
具体原因查看文章:DOM 性能瓶颈与 Javascript 性能优化
这里给提供两种表格插件:
Vxe-table(基于 vue 的 pc 端表格插件)
- 优势:- 可以自定义选择要引入的模块,有效减少项目体积
- 表格种类多
- vue 扩展库
 
1.安装
| 1
 | npm insatall xe-utils vxe-table
 | 
2.在 main.js 中引入 vxe-table
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | import Vue from "vue";import App from "./App.vue";
 import router from "./router";
 import store from "./store";
 import 'xe-utils';
 import VXETable from 'vxe-table';
 import 'vxe-table/lib/index.css';
 
 Vue.use(VXETable);
 Vue.config.productionTip = false;
 
 new Vue({
 router,
 store,
 render: h => h(App)
 }).$mount("#app");'
 
 | 
Vxe-table API 文档地址: https://xuliangzhan_admin.gitee.io/vxe-table/#/table/api
Vxe-table 演示: https://xuliangzhan_admin.gitee.io/vxe-table/#/table/scroll/scroll
pl-table(一个轻量级表格插件)
1.安装
| 1
 | npm install pl-table --save
 | 
2.在 main.js 中引入 pl-table
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | import plTable from "pl-table";import "pl-table/themes/index.css";
 import "pl-table/themes/plTableStyle.css";
 
 Vue.use(plTable);
 
 new Vue({
 el: "#app",
 render: (h) => h(App),
 });
 
 
 import { PlTable, PlTableColumn, PlxTableGrid, PlxTableColumn } from "pl-table";
 export default {
 components: {
 PlTable,
 PlTableColumn,
 },
 };
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | <pl-tableref="table"
 stripe
 use-virtual
 v-loading="loading"
 :data="tableData"
 highlight-current-row
 height="500"
 style="width: 100%">
 <pl-table-column
 prop="number"
 width="90"
 label="编号">
 <template slot-scope="scope">
 {{scope.row.number}}
 <template>
 </pl-table-column>
 </pl-table>
 
 | 
pl-table 主要通过开启 use-virtual 属性来解决表格卡顿问题
pl-table GitHub:  https://github.com/livelyPeng/pl-table
解决 element 表格数据量过大导致页面渲染缓慢、卡顿问题