使用vue编写的分页器组件,支持输入页码跳转,效果如图:
1、点击前五页:
2、点击中间部分页面
3、点击第一页,上一页按钮失效,点击最后一页,下一页按钮失效
组件调用:
//html调用 参数:pageSize(总页数);pageNo(当前页) <pager :pageSize="pageSize" v-model="pageNo" @on-jump="jump"></pager> //组件引入 import pager from '../../component/pager/pager.vue' //组件调用声明 components:{ pager} //参数 data(){ return { pageSize: 30, pageNo: 2 } } //接收跳转事件 methods:{ jump(id){ console.log(id) }, }
组件编写
pager.vue:
<template> <div class="pager-wrapper" ref="pager"> <div class="pager-box"> <a class="pager-prev" :class="{'pager-disabled':prevDisable}" href="javascript:;" @click="jumpPrev()">上一页</a> <template v-for="i in pageSize"> <span v-if="i==pageNo" class="pager-curr"> <em class="pager-em"></em><em>{{i}}</em> </span> <a v-else-if="pageNo<5&&(i)<6" href="javascript:;" @click="jump(i)"> {{i}} </a> <a v-else-if="pageSize<7||i==1||i==pageSize||(pageNo-2<=i&&i<=pageNo+2)" href="javascript:;" @click="jump(i)"> {{i}} </a> <template v-else> <span v-if="pageNo<5&&i==6" class="pager-spr">…</span> <span v-if="pageNo==4&&i==7" class="pager-spr">…</span> <span v-if="pageNo>4&&i==pageNo-3" class="pager-spr">…</span> <span v-if="pageNo>4&&i==pageNo+3" class="pager-spr">…</span> </template> </template> <a class="pager-next" :class="{'pager-disabled':nextDisable}" href="javascript:;" @click="jumpNext()">下一页</a> </div> <div class="pager-input"> <input type="text" v-model="jumpPage"> <a class="pager-btn-go" href="javascript:;" @click="Go()">GO</a> </div> </div> </template>
<script> export default { model:{ //通过v-model传过来的参数 prop: 'pageNo', event: 'jumpPage' }, props:{ pageSize:{ type: Number, default: 1 }, pageNo:{ //通过v-model传过来的参数 type: Number, default: 1 } }, data(){ return { jumpPage:'' //避免操作props参数 } }, computed: { prevDisable: function(){ //“上一页”按钮是否可点 if(this.pageNo > 1){ return false; }else{ return true } }, nextDisable: function(){ //“下一页”按钮是否可点 if(this.pageNo < this.pageSize && this.pageSize > 1){ return false; }else{ return true; } }, }, methods: { jumpPrev: function(){ //点击上一页 if(this.pageNo == 1){ return ; }else{ this.$emit('jumpPage',this.pageNo-1); this.$emit('on-jump',this.pageNo-1); } }, jumpNext: function(){ //点击下一页 if(this.pageNo == this.pageSize){ return ; }else{ this.$emit('jumpPage',this.pageNo+1); //修改当前页码 this.$emit('on-jump',this.pageNo+1); //跳转 } }, jump: function(id){ //直接跳转 if(id>this.pageSize){ id=this.pageSize; } this.jumpPage = ''; this.$emit('jumpPage',id); //修改当前页码 this.$emit('on-jump',id); //跳转 }, Go: function(){ if(this.jumpPage==''){ //判空处理 return ; }else if(/^\d*$/.test(parseInt(this.jumpPage))){ //填写数字才能跳转 this.jump(parseInt(this.jumpPage)); this.jumpPage = ''; }else{ this.jumpPage = ''; return ; } } } } </script>
完整代码可下载:vue分页器组件
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月14日
2024年11月14日
- 林强.1992-春风少年兄【魔岩】【WAV+CUE】
- 世界顶级汽车音响试音王《金色的草原》24K金碟[低速原抓WAV+CUE][1G]
- 周深 /Faouzia《解密 电影原声带》[320K/MP3][39.32MB]
- 周深 /Faouzia《解密 电影原声带》[FLAC/分轨][199.46MB]
- 英雄联盟s14亚军队伍是哪支 英雄联盟s14亚军队伍介绍
- 英雄联盟s14夺冠队伍是哪支 英雄联盟s14夺冠队SKT T1队伍介绍
- faker三冠王是哪几个赛季 faker三冠王赛季介绍
- 岩贵-音乐磁场(AI调音)2CD[WAV]
- 童丽《千愁记旧情》HQII头版限量编号2024[低速原抓WAV+CUE]
- 瑞鸣十五周年纪念3[HQCD限量编号头版][低速原抓WAV+CUE]
- 任天堂专利展示新VR外设:或会随同NS继任机型推出
- 博主制作“Switch 2”模型 与现有掌机对比
- 网友热议IGN为《马路RPG》打5分:要是多元化就能9分了
- 群星《从21世纪安全撤离 电影原声音乐专辑》[320K/MP3][191.19MB]
- 群星《从21世纪安全撤离 电影原声音乐专辑》[FLAC/分轨][592.38MB]