html
<van-list
v-if="joblist && joblist.length > 0"
v-model:loading="loading"
:finished="finished"
:immediate-check="false"
finished-text="没有更多了"
@load="onLoad"
>
js
// 加载
const loading = ref(false);
// 全部加载完毕
const finished = ref(false);
// 加载更多触底事件
const onLoad = async () => {
if (joblist.value.length < total.value) {
searchform.value.pageNum++;
await getjoblist();
loading.value = false;
} else {
loading.value = false;
finished.value = true;
}
};
const getjoblist = async () => {
const res = await queryJoblist(searchform.value);
if (res.code === 200) {
total.value = res.total;
//使用concat将新数据和原来的列表拼接在一起,不能直接赋值
joblist.value = joblist.value.concat(res.rows);
}
};
注意!!!
要使用concat将新数据和原来的列表拼接在一起,不能直接赋值,否则每次请求后的页面高度都是在页面底部,导致一直触发onLoad方法请求接口多次