vant 下拉刷新和触底加载配合使用

 <van-pull-refresh v-model="refreshing" @refresh="onRefresh"  >
          <van-list
            ref="chekd"
            v-model="loading"
            :finished="finished"
            finished-text="没有更多了"
            @load="onLoad"
            :error.sync="error"
            error-text="请求失败,点击重新加载"
          >
            <div class="van-clearfic">
             
              <div class="content">
                <!--列表组件 -->
                <cardList
                  :cardList="cardListshop"
                  @clickBtn="clickBtns"
                  :toStart="toStart"
                  :execution="execution"
                  :executions="executions"
                  :completes="completes"
                  :over="over"
                />
              </div>
            </div>
          </van-list>
        </van-pull-refresh>

data(){
return{
      loading: false,    //true为加载状态
      finished: false,   //没有更多
      error: false,      //提示错误信息
      refreshing: false, // 下拉
      pageNumber: 1,
      pageSize: 10,
      cardListshop: [],  // 列表卡片

}



methods:{
//下拉的话refreshing为true
onRefresh() {
      this.finished = false;
      // 将 loading 设置为 true,表示处于加载状态
      this.loading = true;
      this.onLoad();
    },
    onLoad() {
      if (this.refreshing) {
        this.cardListshop = [];  //清空数据
        this.refreshing = false;  //停止下拉
        this.pageNumber = 1;   初始化页码
      }
      this.loading = true;   //加载数据
      this.QueryOver();      // 请求后端数据铺设界面
    },





 // 1.0查询
    async QueryOver() {
      this.toast(); //vant的加载提示
      const param = {
        pageNumber: this.pageNumber,
        pageSize: this.pageSize,
      };
      await api.Inventoryresult(param).then(res => {
        if (res.code === 0) {
          this.loading = false;// 加载关闭
          const cardListshops = res.data;  //赋值
           this.pageNumber += 1;
           Toast.clear();//清除加载提示
          const total = res.data.total;  //获取请求数据的总条数
          const end = this.cardListshop.length;  //已获取的数据的总条数
          if (end >= total) {   //如果两个相等就停止加载,显示没有更多
            this.finished = true;
            return;
          }
        } else {
          Toast(res.message);
        }
      }).catch(error => {  //抛出错误
        this.error = true;  //显示点击加载更多
        this.refreshing = false;
        this.loading = false;
        console.log(error);
      });
    },

}

记录一下,vant组件的使用过程,有不足的地方欢迎补充

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农夫_山泉水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值