欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VUE上拉加载更多,基于vant框架

程序员文章站 2022-06-07 13:11:02
...

1.在data中定义初始的状态

	  loading: false,
      finished: false,
      offset:100,//滚动条与底部距离小于 offset 时触发load事件
      page:1

2.在需要分页的地方,用van-list进行包裹

  <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
      <van-tabs color="#0197ee" @click="handleClick">
          <van-tab title="XXX">
          </van-tab>
          <van-tab title="XXX">
          </van-tab>
      </van-tabs>
  </van-list>

3.获取数据

    getList() {
      this.$fetchPost("*****/*****", {
        user_id: this.userId,
        page_num: this.page,
      })
        .then(response => {
          if (response.data.code == 1 && response.data.data.length > 0) {
          	// 加载状态结束如果请求到数据,将数据拼接在一起
            this.kindergartenList.push(...response.data.data);
            // 加载状态结束
            this.loading = false;
          } else {
            this.loading = false;
            this.finished = true;
          }
        })
        .catch(res => {
          return false;
        });
    },

4.设置触发需要的参数,同时调用请求数据的函数

onLoad() {
      this.page++;
      this.getList();
    },

需要注意:
一般默认情况,页面请求的数据,不足一页是,会自动触发onload事件,所以尽量保证第一屏数据足够。

相关标签: vue项目