成果:
代码:
<template> <div> <h3>前端分页</h3> <div class="table"> <el-table :data="nowPageList" width="100%" :height="400" > <el-table-column v-for="(info,index) in header" header-align="center" :key="index" :property="info.key" :label="info.title" :minWidth="info.width" show-overflow-tooltip align="center" > </el-table-column> </el-table> <el-pagination small @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="currentPage" :page-size="pageSize" layout="total, prev, pager, next" :total="total" @prev-click="prevPage" @next-click="nextPage" > </el-pagination> </div> </div></template><script>export default{ data(){ return { tableDataAll:[ {name:"老李",age:"20"}, {name:"老李",age:"21"}, {name:"老李",age:"22"}, {name:"老李",age:"23"}, {name:"老李",age:"24"}, {name:"老李",age:"25"}, {name:"老李",age:"33"}, {name:"老李",age:"34"}, ], header:[ { "title": "名字", "key": "name" }, { "title": "年龄", "key": "age" }, ], currentPage:1, pageSize:5, nowPage:{ currentPage:this.currentPage, pageSize:this.pageSize }, total:50, nowPageList:[], } }, watch: { nowPage(newVal,oldVal){ this.currentPage = newVal.currentPage this.pageSize = newVal.pageSize }, }, created(){ this.nowPageList = this.tableDataAll.slice(0,5); }, methods:{ handleSizeChange(val) { this.pageSize = val this.changePage(); }, handleCurrentChange(val) { this.currentPage = val this.changePage(); }, //上一页 prevPage() { if (this.currentPage == 1) { return false; } else { this.currentPage--; this.changePage(); } }, // 下一页 nextPage() { if (this.currentPage == this.totalPage) { return false; } else { this.currentPage++; this.changePage(); } }, changePage(){ let obj ={ currentPage:this.currentPage, pageSize:this.pageSize, } let currentPage = obj.currentPage let pageSize = obj.pageSize let data = JSON.parse(JSON.stringify(this.tableDataAll)) let begin = (currentPage - 1) * pageSize; let end = currentPage * pageSize; this.nowPageList = data.slice(begin,end); }, }}</script>