vant list的列表,瀑布流滚动加载,用于展示长列表,当列表即将滚动到底部时,会触发事件并加载更多列表项。

基础用法

List 组件通过loading和finished两个变量控制加载状态,当组件滚动到底部时,会触发load事件并将loading设置成true。此时可以发起异步操作并更新数据,数据更新完毕后,将loading设置成false即可。若数据已全部加载完毕,则直接将finished设置成true即可。

由于手机的屏幕长度限制,并且如果获取的列表数据有很多条(比如100条),那么一次性加载数据很消耗运行速度。这里的方法设置两个参数,一个参数控制每次下拉手机屏幕加载一部分数据(每次加载10条),另外一个参数设置,每次刷新记载的过滤之前加载过的数据(过滤之前加载的10条,不在从数据库中获取)。瀑布流滚动加载,用于展示长列表,当列表即将滚动到底部时,会触发事件并加载更多列表项。手机下滑多少,就加载多少条数据。

  1. 主要后端传参的字段:
    take(每次加载获取多少条数据,初始化数值,列表数据足够填满手机屏幕就好。作用:每次下滑手机获取多少条数)
    skip(再次获取数据时跳过多少条数据,一般都是跳过take*skip条)。
<van-list
       v-model="loading" 
       :finished="finished" 
       finished-text="没有更多了" 
       @load="onLoad"
       :immediate-check="false"
       v-if="dataList.length"
></van-list>

data() {
   return {
     Skip: 0,
     Take: 8,
 },
 async getList() {

   // 获取列表数据
   	let data = {
       Skip: this.Skip * this.Take,//过滤每次加载的条数*下滑的次数
       Take: this.Take,//每次加载(获取)的数据
     }

     const res = await request("/V1/wap/commissionRecord/List", data);
     
     this.dataList = this.dataList.concat(res.Result.Results);//连接每次加载的后台数据的数组,一起显示
     this.finished = res.Result.Results.length < this.Take//判断数据库的总数是否小于每次加载的条数。如果true,表明所有数据加载完毕,this.finished=true,那么list的列表预加载不会继续进行。继续执行以下的this.onLoad()。
   		this.loading = false;
   },
   onLoad() {
     if (!this.finished) {//如果this.finished=false,那么代表还有数据没有加载
       this.Skip += 1;//那么skip+1,下滑次数+1
       this.getList();//继续获取数据
     }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值