后端一次性返回数据,前端分页
vue 结合elementUI 分页组件,后端一次性返回数据,前端做分页
1.template中
<el-pagination
@size-change="handleSizeChange"
:page-sizes="[10, 20, 50, 100]"
style="float:right"
@current-change="currentChangeHandle"
:current-page="currentPage"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes,prev, pager, next, jumper">
</el-pagination>
数据
data(){
return{
totalPage:0, // 数据总条数
currentPage:1, // 当前页面
pageSize:10, // 当前页面显示条数
dataList: [], // 页面展示数据
tableData: [] // 后端获取的总数据
}
},
js从后端获取总数据
在这里插入代码片//获取初始数据
getDataList(){
api.agentDealiyWMExport(this.dataForm).then(res=>{
if(res.data.HEAD.CODE=='000'){
this.totalPage=res.data.BODY.total;
// 获取后端返回所有数据
this.tableData=res.data.BODY.rows;
// 对所有数据进行处理,截取数据前 n条数据,显示到页面上
this.dataList=this.tableData.slice(0, this.pageSize)
}
})
},
改变页码
// val 是当前页数
currentChangeHandle (val) {
this.currentPage=val;
this.dataList = this.tableData.slice((val - 1) * this.pageSize, val * this.pageSize)
},
改变条数
// val每页显示多少条
handleSizeChange(val) {
this.dataForm.pageSize=val;
this.dataList = this.tableData.slice((this.currentPage - 1) * val, this.currentPage * val)
},
参考链接:后端一次返回大量数据,前端做分页处理