一些接口不分頁的數據列表,一次性返回大量數據會導致前端渲染卡頓,接口不做分頁的情況下前端可以截取數據來做分頁
以下是一個例子,被截取的列表和全量數據在同一個棧內存空間,所以如果有表格內的表單編輯,新的值也會事實同步到大列表,所以無需做特殊處理
html
<el-table:data="tablePageData"><el-table-columnprop="code"label="編號"show-overflow-tooltip></el-table-column><el-table-columnprop="name"label="名稱"show-overflow-tooltip></el-table-column></el-table><el-pagination:current-page.sync="tableParams.pageNum":page-size.sync="tableParams.pageSize"layout="total, sizes, prev, pager, next":page-sizes="[200]":total="tableData.length"/>
js
data() {return {// 全量數據列表tableData: [],tableParams: {pageNum: 1,pageSize: 200,},};},computed: {// 設置分頁,直接放到data里截取會導致被拷貝的數據沒有被定義,多選框無法被選中tablePageData() {return this.tableData.slice((this.tableParams.pageNum - 1) * this.tableParams.pageSize,this.tableParams.pageNum * this.tableParams.pageSize);}},