实现最完整的分页效果,删除最后一个自动跳转到前一页的数据

使用的是elements里的分页的组件,也可以自己封装分页组件

1.首先是使用的组件库,首先要正确的安装引用组件,才可以在项目中使用,具体代码如下

 <!-- 分页部分 -->
    <div class="pagination-container">
      <el-pagination
        background
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        layout="total, sizes,prev, pager, next,jumper"
        :page-size="queryParams.pageSize"
        :page-sizes="[5, 10, 15]"
        :current-page.sync="queryParams.pageNum"
        :total="total"
      >
      </el-pagination>
    </div>
 // 分页参数
    handleSizeChange(val) {
      this.queryParams.pageNum = 1;
      this.queryParams.pageSize = val;
      this.getfetlist();
    },
    handleCurrentChange(val) {
      this.queryParams.pageNum = val;
      this.getfetlist();
    },

这是简单的基础分页,具体来讲,当页面一共展示五页的数据,删除第五页的最后一条数据时应该自动跳转到第四页,这是需要和我们页面的数据联系到一起

getList() {
      this.listLoading = true;
      fetchListAll(this.queryParams).then((response) => {
        this.listLoading = false;
        this.list = response.data.list;
        this.total = response.data.total;
        this.totalPage = response.data.totalPage;
        this.pageSize = response.data.pageSize;
        const lastPageLength = this.total % this.queryParams.pageSize;
        if (
          lastPageLength === 0 &&
          this.queryParams.pageNum >
            Math.floor(this.total / this.queryParams.pageSize)
        ) {
          this.queryParams.pageNum--;
          this.getList();
        }
      });
    },
  1. lastPageLength 的计算: 这一行代码计算出最后一页的长度,即总数 (this.total) 对每页大小 (this.queryParams.pageSize) 取余数。这可以用来检查最后一页是否完全填满了结果。

  2. 条件判断: 接下来的条件判断语句使用 if 语句来检查两个条件:

    • lastPageLength === 0:如果最后一页的长度为0,意味着结果正好填满了所有页面。
    • this.queryParams.pageNum > Math.floor(this.total / this.queryParams.pageSize):当前页码大于总页数时,执行下面的操作。
  3. 分页处理: 如果上述条件都满足,那么会执行下面的操作:

    • this.queryParams.pageNum--:将页码减少1,以便回到上一页。
    • this.getList():调用 getList 方法来获取更新后的列表数据。

这样就可以实现一个完整的分页效果!!!!!!!!!!!!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现端分页自动删除最后一页且到上一页的代码可以分为以下几步: 1. 获取数据总数和每页显示的数据数量,计算出总页数。 2. 当最后一页的数据为空时,将总页数减一。 3. 判断当页数是否大于总页数,如果大于,则将当页数设置为总页数减一。 4. 在渲染分页按钮时,判断当页数是否为最后一页且数据为空,如果是,则自动到上一页。 下面是一个示例代码: ```javascript // 假设数据存储在一个数组中,每页显示 10 条数据 const data = [/* 数据数组 */]; const pageSize = 10; const total = data.length; const totalPages = Math.ceil(total / pageSize); // 当最后一页的数据为空时,将总页数减一 if (total % pageSize === 0) { totalPages--; } // 判断当页数是否大于总页数,如果大于,则将当页数设置为总页数减一 let currentPage = /* 当页数 */; if (currentPage > totalPages) { currentPage = totalPages; } // 渲染分页按钮时,判断当页数是否为最后一页且数据为空,如果是,则自动到上一页 if (currentPage === totalPages && data.slice((currentPage - 1) * pageSize, currentPage * pageSize).length === 0) { currentPage--; } // 根据 currentPage 渲染分页按钮 // ... ``` 在上述代码中,需要根据实际情况替换注释部分的代码。其中,判断最后一页数据是否为空的方式是通过判断数组切片是否为空来实现的。切片的起始位置为 `(currentPage - 1) * pageSize`,结束位置为 `currentPage * pageSize`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值