Pagination 分页实现跳转首页和尾页

使用slot插槽添加首页和尾页按钮

<div class="paginationCustomize" v-if="tableData.length > 0">
    <el-pagination
                   :page-sizes="pageSizes"
                   :page-size="tablePage.pageSize"
                   :current-page="tablePage.pageNo"
                   layout="total, sizes, slot,prev, pager, next"
                   :total="tablePage.tableTotal"
                   @size-change="handleSizeChange"
                   @current-change="handleCurrentChange"
                   >
        <el-tooltip content="跳转至首页" placement="top">
            <button class="firstPage" :disabled="tablePage.firstPageDisabled" @click="toFirstPage">
                <i class="el-icon-d-arrow-left"></i>
            </button>
        </el-tooltip>
    </el-pagination>
    <el-pagination
                   :page-sizes="pageSizes"
                   :page-size="tablePage.pageSize"
                   :current-page="tablePage.pageNo"
                   layout="slot, jumper"
                   :total="tablePage.tableTotal"
                   @size-change="handleSizeChange"
                   @current-change="handleCurrentChange"
                   >
        <el-tooltip content="跳转至尾页" placement="top">
            <button class="lastPage" :disabled="tablePage.lastPageDisabled" @click="toLastPage">
                <i class="el-icon-d-arrow-right"></i>
            </button>
        </el-tooltip>
    </el-pagination>
</div>

添加首页和尾页按钮

data(){
    return {
        tablePage: {
        pageNo: 1, //  当前页
        pageSize: 10, //  展示数量
        tableTotal: 0, //  总数
        firstPageDisabled: true, //  首页
        lastPageDisabled: true //  末页
      },
      pageSizes: [10, 20, 50, 100],
    }
}

监听首页和尾页按钮是否禁用

watch: {
    // 分页 计算首页和尾页
    tablePage: {
      handler (newVal) {
        const pages = Math.ceil(newVal.tableTotal / newVal.pageSize);
        if (pages === 0) {
          // 数据(totalResult)为0
          this.tablePage.firstPageDisabled = true; // 首页按钮是否禁用
          this.tablePage.lastPageDisabled = true; // 尾页按钮是否禁用
        } else {
          this.tablePage.firstPageDisabled = newVal.pageNo === 1;
          this.tablePage.lastPageDisabled = newVal.pageNo === pages;
        }
      },
      deep: true
    }
  }

跳转首页和尾页

// 前往首页
toFirstPage () {
    this.handleCurrentChange(1);
},
    
// 前往尾页
toLastPage () {
     const max = Math.ceil(this.tablePage.tableTotal / this.tablePage.pageSize);
     this.handleCurrentChange(max);
},

// 分页条数变化
 handleSizeChange (psize) {
     this.tablePage.pageSize = psize;
 },
     
// 改变当前页码
handleCurrentChange (currentPage) {
     this.tablePage.pageNo = currentPage;
     this.getData();
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Pagination分页)是一种常见的网设计和开发技术,通常用于在列表或搜索结果等长文本内容中显示大量数据,以提高用户体验和面性能。它将长文本内容分割成多个面,并允许用户通过点击面导航按钮或输入面数字来浏览这些面。通常,每个面显示一定数量的项目,例如每显示10个项目。分页还可以包括一些额外的功能,例如搜索框、排序选项和筛选器,以帮助用户更轻松地浏览和查找所需的内容。 ### 回答2: pagination分页)是指将大量内容或数据按照一定规则划分为多个面展示,以方便用户浏览和管理。在网设计和数据库查询中,分页是一种常见的技术手段。 分页的优势在于能够对大量内容进行合理的划分和呈现,避免了用户一次性加载大量数据而导致面加载速度变慢的问题。同时,分页还可以有效地减小服务器负载,提升系统性能和响应速度。 分页实现方式主要依靠服务器端和客户端共同配合完成。服务器端通过数据库查询语句的limit和offset来控制返回的数据范围,从而实现数据的分页查询。客户端则通过面上的分页导航栏或者滚动加载等方式将分页数据展示给用户。 分页通常分为两种基本类型:基于码的分页和基于滚动的分页。基于码的分页是指通过点击码导航栏来切换不同码对应的数据面。基于滚动的分页则是指当用户滚动至面底部时,自动加载下一数据。 在分页设计中,需要考虑几个关键因素。首先是每展示的数据量,过多会导致面加载速度变慢,过少则会增加用户切换面的频率。其次是分页导航的设计,需清晰明了,方便用户直观操作。再次是当前码的显示,以及提供跳转至指定码的功能,以方便用户快速定位到所需面。 总的来说,pagination分页)是一种有效管理和展示大量内容或数据的技术手段,通过合理的分页设计,可以提高用户体验和系统性能。 ### 回答3: 分页pagination)是一种常见的网设计技术,用于将大量内容按照一的方式分隔显示,从而提供更好的用户体验。 分页的作用在于将长篇的文章、产品列表或搜索结果等大量信息分割成若干面,使用户能够逐浏览,提高浏览效率。通常,一显示一定数量的内容,用户可以通过点击码或上一/下一按钮来切换面。在每一的底部,还会提供快速跳转到指定码的选项。 分页技术的优势在于它可以减轻面加载的负担,提高面加载速度。当面内容过多时,如果采用一次性加载全部内容的方式,可能导致面加载时间过长,并且在网速较慢的情况下可能会影响用户的体验。而采用分页技术,只需加载当前面的内容,可以有效减少等待时间,提升用户的感知满意度。 分页还可以增加网内部链接和导航的可用性。通过在面底部提供跳转链接和前后切换按钮,用户可以更方便地导航到其他面,从而实现对内容的快速浏览和检索。 需要注意的是,分页的设计要合理,不能过多地划分页面,以免给用户带来翻频繁、体验不佳的感觉。同时,应该提供直观明了的面导航元素,为用户提供良好的交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值