最近公司做项目遇到返回的数据量太大,导致浏览器一下子渲染不出来,有时候还可能造成浏览器崩溃。
为了缓解浏览器的压力,采用elment 的table + vue在前端实现了一个简单的分页功能,做完之后,情况有所缓解
table部分,注意data的设置
<el-table
:data="tableData.slice((currentPage-1)*pagesize,currentPage*pagesize)"
border >
<el-table-column type="index"></el-table-column>
<el-table-column prop="type" label="字典类型"></el-table-column>
<el-table-column prop="name" label="字典名称"></el-table-column>
<el-table-column prop="code" label="字典代码"></el-table-column>
</el-table>
这里是elmenet分页组件
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="pagesize"
:total="tableData.length"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
vue 中return 设置默认值,否则就会设置对了出现数据
pagesize:20,//默认分页每页数据量
currentPage:1,//默认展示第一页数据
这里是methods方法
methods: {
handleSizeChange: function(val) {
this.pagesize = val;
},
handleCurrentChange: function(currentPage) {
this.currentPage = currentPage;
},
}
设置完就好了。
自己请求一次数据给tableData
值就好了