赞
踩
上拉加载思路:
<!-- 上拉加载 --> <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad" > <!-- 下拉刷新 --> <van-pull-refresh v-model="isLoading" success-text="刷新成功" @refresh="onRefresh" > <!-- 内容 --> <ul > <li v-for="item in prolist" :key="item.proId" class="commin-box" @click="godetail(item.proId)"> <img :src="item.img" /> <p class="proName">{{ item.proName }}</p> <p class="price">¥ {{ item.price }}</p> </li> </ul> </van-pull-refresh> </van-list>
上拉加载:
初始设置loading 为true,数据加载成功,设置为false。所有数据加载完设置 finished为false(loading,finished为vant组件中提供的)判断数据加载完毕:数据的长度小于1 则判断数据加载完毕,
onLoad() { // 开始异步请求数据 this.loading = true; // 本次数据更新成功后,将loading设置为false getpro({ num: this.num, //num,一页获取多少个 index: this.index++, //index初始为0,页码 }).then((data) => { this.loading = false; this.prolist = [...this.prolist, ...data.data.msg]; // 上一页数据跟新加载的数据做合并 // 判断数据是否加载完毕 if (data.data.msg.length < 1) { // 将finished设置为true,表示所有数据加载完毕 this.finished = true; } }); },
下拉刷新思路
代码:
// 下拉刷新
onRefresh() {
getpro({
num: this.num,
index: this.index,
}).then((data) => {
this.prolist = data.data.msg;
this.isLoading = false;
this.index = 0; //页码也需要初始化
this.finished = false //
})
},
作者:王雅楠
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。