使用vue+iview ,Page实现前端分页处理

使用vue+iview ,Page实现前端分页处理

<div class="section">
      <ul>
        <li v-for="item in homeList" :title="item.title" @click="emitPage(item.pid)">{{item.title}}</li>
      </ul>
      <div class="pageNum">
        <Page :page-size="page.pagesize" :total="page.total" @on-change="onChange"  show-elevator ></Page>
 </div>
  </div>
data(){
    return {
      homeList: [],
      page: {
        pagesize:400, // 一页展示多少数据
        total:0, // 数据总数
        //总分页数
        pageCount: 1, // 当前展示分页
      }
    }
  },
  created: {
  	// 调用 请求数据
  	this.getHome();
  },
methods:{
    getHome() {
    // 这里是使用 axios 请求的数据 
      getHome(`/${this.homeid}`).then(res => {
       // 获取返回的数据
        let data = res.data.data;
        // 将返回的数据长度 赋值给 总条数
        this.page.total = data.length;
        // 创建一个数组
        let arr = [];
        if (data.length) {
        // 遍历获取数据的长度 比如当前点击的是第1页面 获取当前点击的第几页( this.page.pageCount == 1)
        // 一页所展示的数据比如是400 (this.page.pagesize ===400)判断 是否大于返回的数据 如果大于 就是用返回的数据长度 作为遍历
        // 否则 就继续使用当前的 (三元运算)
          let num = this.page.pagesize * this.page.pageCount > data.length ? data.length : this.page.pagesize * this.page.pageCount;
          //  看当前请求的是第几页的数据 如果是第一页 就从 下标0 开始取值 如果是第二页 就从第一页结束 后的数据开始请求
          // 这里想用 for(.. in ..) 不知道为啥用不了
           let i =(this.page.pageCount -1) * this.page.pagesize;
          for ( ; i < num; i++) {
          // push到数组中
            arr.push(data[i])
          }
          // 循环结束之后在 赋值给 data 中的 homeList
          this.homeList = arr
        }
      })
    },
   // 这个改变事件是 iview page 自带的 可以获取到当前页
    onChange(pageNum) {
    // 这里是将当页 选中的页 赋值给data 中的 page中的 pageCount 用来做上面请求页面数据的
      this.page.pageCount = pageNum;
      // 改变之后需要 获取 数据 调用请求函数
      this.getHome();
    }
    }

在这里插入图片描述
在这里插入图片描述
有不足之处请指出 谢谢

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值