使用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Vant</title>
<script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.12/lib/index.css"/>
<script src='https://cdn.jsdelivr.net/npm/vant@2.12/lib/vant.min.js'></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.0/axios.min.js"></script>
</head>
<body>
<div id="app">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
:immediate-check="false"
@load="onLoad"
>
<div style="width: 100%;height: 100px;background: red;margin-top: 2px;"
v-for="item in list" :key="item.id">
{{item.name}}
</div>
</van-list>
</div>
</body>
</html>
<script>
var vm = new Vue({
el: '#app',
data: {
list: [],
loading: false,
finished: false,
updata:{
pageNumber: 1,
pageSize:10
}
},
created() {
this.getroadList()
},
methods: {
getroadList() {
axios.get('http://192.168.0.139/cUser', {
params: this.updata
}).then( (res)=> {
let list = res.data.data.list
this.loading = false;
if (list == null || list.length === 0) {
this.finished = true;
return;
}
this.list = this.list.concat(list);
})
.catch( (error)=> {
console.log(error);
});
},
onLoad() {
this.updata.pageNumber++;
this.getroadList();
},
}
});
</script>
注意:
设置<van-list>组件 :immediate-check="false"
理由:禁止 List 初始化时触发 load 事件。把加载第一屏的事件放在 created() 里面。