当功能比较简单,在单一html中使用vue.js分页展示数据,并未安装脚手架,或使用相关UI框架,此时需要手写一个分页器,不失为最合理最便捷的解决方案
先看一下实现效果:
上代码:
1.简单搞一搞 CSS,此处代码有折叠
2.简单搞一搞 HTML
<div id="app" v-cloak @click="showOption=false"> 第{{pageIndex}}页, 每页显示{{pageSize}}条 <div v-show="pageTotalNum > 1" class="pageContainer"> 共{{dataListLength}}条 <ul class="pagesInner"> <li class="page" @click="prevOrNext(-1)"><span aria-hidden="true"><</span></li> <li class="page" v-for="(item, index) in pages" :key="index" :class="{actived: item == pageIndex}" @click="selectPage(item)"> <span>{{item}}</span> </li> <li class="page" @click="prevOrNext(1)"><span class="fa fa-chevron-right" aria-hidden="true">></span></li> </ul> <div class="page-size-box"> <span @click.stop="showOption=!showOption">{{pageSize}}条/页</span> <ul class="size-option" v-show="showOption"> <li v-for="(item, index) in pageSizeList" :key="index" @click="pageSize=item;showOption=false">{{item}}条/页</li> </ul> </div> 跳至 <form id="frm1"> <input type="text" v-model="goToPage" style="text-align: center;"> </form> 页 button @click="handleGoToPage">确定</button> </div> </div>
3.搞事情啦 ~~~~
首先分析一下分页功能的实现思路:
-
首页和尾页始终显示,
-
通过数据总条数dataListLength及每页显示条数pageSize,计算出总页数pageTotalNum
-
监听watch一下,每页显示条数pageSize,重置当前页码pageIndex=1
-
我设计的分页每次最多显示5个页码(大家可根据需求自行调整),剩余部分 ... 代替,并设置不可点击,
-
根据不同的总页数和当前页码的切换,页签展示形态有所不同,展示形态如下图对应序号展示
总页数 <= 1,不显示分页器
总页数 <= 5 && 总页数 > 1,显示全部页码
总页数 > 5 && 当前页面 <= 3 , 倒数第二个页码为...,页码从左往右计算
总页数 > 5 && 当前页面 > 3 && 当前页 < 总页数 - 3 , 正倒数第二个页码都为..., 页码以当前页码计算,±1
总页数 > 5 && 当前页面 > 3 && 当前页 > 总页数 - 3 , 正数第二个页码为..., 页码从右往左计算
<script src="/UploadFiles/2021-04-02/vue.js">
vue.js,分页
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。