Bootstrap+vue.js三分页按钮实现

本文介绍了一种基于Vue.js的前端分页组件实现方案。该方案通过条件判断和事件监听来控制分页导航按钮的状态及点击行为,适用于列表数据的分页显示。文章详细展示了分页组件的HTML结构及交互逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己根据自己理解编写的前端分页实现,仅供参考,如有雷同,纯属巧合,绝非抄袭

<!-- 分页信息 -->

<nav aria-label="Page navigation">
  <ul class="pagination">
  <!-- 分页信息展示 -->
  <li class="disabled"> <span aria-hidden="true">当前【{{ page.pageNum }}/{{ pages }}】页</span></li>
  
    <li v-if="page.pageNum > 1">
      <a href="#" aria-label="Previous" v-on:click="getlists(page.pageNum-1)">
        <span aria-hidden="true">上一页</span>
      </a>
    </li>
     <li v-else  class="disabled">
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">上一页</span>
      </a>
    </li>
       <!-- 分页按钮1 -->
    <!-- 当前第一页,不可选 -->
  <li v-if="page.pageNum==1"  class="disabled">
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">1</span>
      </a>
    </li>
    <!-- 当前非第一页 -->
       <li v-else>
<!-- 最后一页,总页数大于2 -->
      <a href="#" aria-label="Previous" v-if="page.pageNum == pages && pages>2" v-on:click="getlists(page.pageNum-2)">
        <span aria-hidden="true">{{page.pageNum-2}}</span>
      </a>
      <!-- 非最后一页,或最后一页为2 -->
      <a href="#" aria-label="Previous" v-else v-on:click="getlists(page.pageNum-1)">
        <span aria-hidden="true">{{page.pageNum-1}}</span>
      </a>
    </li>
    
     <!-- 分页按钮2 -->
     <!-- 当前页,不可选 (不是第一页,并且不是最后一页或者一共两页)-->
    <li v-if="page.pageNum>1 && ((pages>page.pageNum) || (pages==2))"  class="disabled">
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">{{page.pageNum}}</span>
      </a>
    </li> 
    <!-- 当前第一页,总页数大于 1-->
    <li v-if="page.pageNum==1 && pages>1">
      <a href="#" aria-label="Previous" v-on:click="getlists(page.pageNum+1)">
        <span aria-hidden="true">{{page.pageNum+1}}</span>
      </a>
    </li>
    <!-- 当前最后一页,总页数大于 2-->
    <li  v-if="page.pageNum==pages && pages>2">
        <a href="#" aria-label="Previous" v-on:click="getlists(page.pageNum-1)">
        <span aria-hidden="true">{{page.pageNum-1}}</span>
      </a>
     </li>
    
<!--   分页按钮3 -->
<!-- 当前页为最后一页,不可选 -->
    <li v-if="pages == page.pageNum && pages>2">
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">{{ page.pageNum }}</span>
      </a>
    </li>
    <!-- 当前页为第一页,共三页 -->
  <li v-if="page.pageNum==1 && pages>2">
      <a href="#" aria-label="Previous" v-on:click="getlists(page.pageNum+2)">
        <span aria-hidden="true">{{page.pageNum+2}}</span>
      </a>
    </li>
    <!-- 当前页不为第一页,不为最后一页 -->
    <li v-if="page.pageNum != 1 &&  pages != page.pageNum">
      <a href="#" aria-label="Previous" v-on:click="getlists(page.pageNum+1)">
        <span aria-hidden="true">{{page.pageNum+1}}</span>
      </a>
    </li>
 
    <li v-if="page.pageNum < pages">
      <a href="#" aria-label="Previous" v-on:click="getlists(page.pageNum+1)">
        <span aria-hidden="true">下一页</span>
      </a>
    </li>
     <li v-else  class="disabled">
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">下一页</span>
      </a>
    </li>
  </ul>
</nav>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值