vant实现上拉刷新,下拉加载

本文介绍了如何利用Vant UI库实现上拉刷新和下拉加载功能,详细讲解了相关配置和步骤,适用于前端开发者提升用户体验。

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

vant实现上拉刷新,下拉加载

<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
        <van-list
          v-model="loading"
          :finished="finished"
          finished-text="没有更多了"
          @load="onLoad"
        >
  		</van-list>
</van-pull-refresh>
data() {
  return {
      loading: false,
      finished: false,
      refreshing: false,
      pageNum: 1,
      pageSize: 10,
      // 注意如果设置一次显示的量比较小,第一次加载时如果铺不满全屏,还会再次触发去请求第二页的数据
      serviceList: [],
      filters: {},
  },
methods: {
	onRefresh(msg) {
      // 清空列表数据
      this.finished = false;
      // 重新加载数据
      this.loading = true;
      this.pageNum = 1;
      this.onLoad();
    },
  	// 获取全部订单数据
    onLoad() {
      if (this.refreshing) {
        this.serviceList = [];
        this.refreshing = false;
      }
      let params = Object.assign({}, this.filters);
      params.pageNum = this.pageNum;
      params.pageSize = this.pageSize;
      pageApi.orderProgressFindList(params).then(
        result => {
          if (result) {
            if (result.total >= 10) {
              let list = result.data;
              let total = 0;
              if ((list.total * 1) % 10 == 0) {
                total = (result.total * 1) / 10;
              } else {
                total = parseInt((result.total * 1) / 10) + 1;
              }
              if (this.pageNum > 1) {
                this.serviceList = [...this.serviceList, ...list];
              } else {
                this.serviceList = list;
              }
              // 如果当前页数 = 总页数,则已经没有数据
              if (this.pageNum === total) {
                this.finished = true;
                this.finishedText = "- 没有更多了-";
              }
              // 如果总页数大于当前页码,页码+1
              if (total > this.pageNum) {
                this.pageNum++;
                this.loading = false;
              }
            } else {
              this.serviceList = result.data;
              this.finished = true;
              this.finishedText = "- 没有更多了-";
            }
          }
        },
        function(err) {}
      );
    },  
    // 调用
    closeSearchPop() {
        this.pageNum = 1;
        this.onRefresh();
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值