关于vant滚动事件注意事项
vant 上滑加载和下拉刷新
load事件能触发的关键因素是必须要设置css,也就是list的高度,height:100%,overflow-y:auto;
上拉加载,下拉刷新的关键代码:
<van-pull-refresh v-model="refreshing" @refresh="onRefresh" class="list-box">
<van-list v-model="loading" :finished="finished" class="list-box"
finished-text="没有更多了"
:immediate-check="false"
@load="onLoad"
>
<div class="list-info" v-for="item,i in riskList" :key="i">
<div class="list-module">
<div class="list-cont">{{item.province}}{{item.city}}{{item.area}}{{item.address}}</div>
<div class="high-mark" v-if="item.riskLevelEnum=='HIGH_RISK'">高风险</div>
<div class="middle-mark" v-if="item.riskLevelEnum=='MIDDLE_RISK'">中风险</div>
<div class="important" v-if="item.riskLevelEnum=='IMP_AREA'">重点地区</div>
</div>
</div>
</van-list>
</van-pull-refresh>
refreshing:false, //刷新
loading: false,
finished: false,
pageNum: 1,
pageSize: 10,
const { code, result } = await historyHighRisk(params);
if (code === 200) {
this.$toast.clear();
this.riskList = this.riskList.concat(result.data)
this.loading = false;
//如果列表数据条数>=总条数,不再触发滚动加载
if(this.riskList.length >= result.totalSize){
this.finished = true; // 加载结束
console.log('加载结束');
}
this.pageNum++;
if (this.riskList == null || this.riskList.length === 0) {
this.finished = true;
return;
}
} else {
this.$toast(res.message);
this.finished = true;
this.loading = false;
}
onLoad() {
setTimeout(async () => {
if (this.refreshing) {
this.list = [];
this.refreshing = false;
}
await this.getHistoryList();
}, 500);
},