vue页面实现盒子内滚动加载分页数据

代码块

<div class="box" @scroll="handleScroll"></div>
<div v-if="noMore">没有更多啦~</div>
data(){
	return{
	  setTime:null,
      noMore:false,
      list:[],
      page:{
      	page_no:1,
      	totalPage:1,
      	page_size:10
	  }
	}
},
methods:{
	 handleScroll(e){
      const { scrollTop, clientHeight, scrollHeight } = e.target;
      if (scrollTop + clientHeight === scrollHeight) {
        if (this.setTime) return;
        if (this.page.page_no < this.page.totalPage) {
          this.setTime = setTimeout(() => {
            this.page.page_no+=1
            this.noMore=false
            // 获取数据
            this.getData();
            this.setTime = null;
          }, 500);
        }else{
          this.noMore=true
        }
      }
    },
    //获取数据
    getData() {
      if (this.page.page_no == 1) {
        this.list = [];
      }
      let sendData = {
        page_no: this.page.page_no,
        page_size: this.page.page_size,
      };

      this.$getData(sendData).then((res) => {
       	let data=res.data
        let totalPage = parseInt(
          res.data.page_result.total_count / this.page.page_size
        );
        if (res.data.page_result.total_count % this.page.page_size > 0) {
          totalPage = totalPage + 1;
        }
        if (!totalPage) {
          totalPage = 1;
        }
        this.page.totalPage = totalPage;
        this.list = this.list.concat(data);
      });
    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值