html 部分
<table> <th> <td>ID</td><td>名称</td><td>班级</td> </th> <tr v-for="(v,i) in items"> <td>{{v.id}}</td><td>{{v.name}}</td><td>{{v.class}}</td> </tr> </table> <!---分页--> <nav > <ul> <!--上一页--> <li @click="PrePage(index)" :class="page.pageNo<=1?'disabled':''"> <a aria-albel="Previous"> <span aria-hidden="true">«</span> </a> </li> <!---当前页-----> <li :class="page.pageNo==index?'active':''" v-for="index in pages" :key="index" @click="curPage(index)"> <a>{{index}}</a> </li> <!----下一页-----> <li @click="NextPage()" :class="page.pageNo>=page.pageTotal?'disabled':''"> <a aria-label="Next"> <span aria-hidden="true">»</span> </a> </li> </ul> </nav>
vuejs 部分
window.onload=function(){ new Vue({ el:"#my", data:{ lists:[], page:{ pageTotal:1, pageNo:1, pageSize:10 } }, methods:{ getList(i=this.page.pageNo){ this.page.pageNo=i axios({ method:'get', url:'http:/localhost:7000/home/page/${this.page.pageNo}/{$this.page.pageSize}' }).then(res=>{ console.log(res) let {data,pageTotal,rows}=res.data this.lists=data; this.page.pageTotal=pageTotal }).catch(error=>{ console.log(error) }) } curPage(i){//当前页 if(isNumber(this.getList(i);)){ this.getList(i); } }, PrePage(){ if(this.page.pageNo>1){ this.getList(--this.page.pageNo) } }, NextPage(){ if(this.page.pageNo<this.page.pageTotal){ this.getList(++this.page.pageNo) } } }, computed:{ ///添加省略号的位置有a左侧b两侧c右侧 pages(){ let {pageNo,pageTotal}=this.page; //1.总的页数小于10 if(pageTotal<10) return pageTotal; //2.总的页数大于10,添加省略号 //2.1总的页数小于5 if(pageNo<=5){ return [1,2,3,4,5,6,'...',pageTotal]; //2.2页码大于21-5 }else if(pageNo>pageTotal-5){ return [1,'...',pageTotal-6,pageTotal-5,pageTotal-4,pageTotal-3,pageTotal-2,pageTotal-1,pageTotal]; //2.3页码在5-17之间 }else{ return [1,'...',pageNo-3,pageNo-2,pageNo-1,pageNo,pageNo+1,pageNo+2,pageNo+3,'...']; } } }, mounted(){ this.getList(1) } }) }