<template> <div class="sg-page-body"> <div class="sg-list"> <van-pull-refresh v-model="pullLoading" @refresh="onPullRefresh" success-text="刷新成功"> <van-list v-model="listLoading" @load="onLoadList" :finished="finishedList" finished-text="没有更多了"> <van-card v-for="(item,$index) in list" :key="$index">{{item.label}}</van-card> </van-list> </van-pull-refresh> </div> </div> </template> <script> export default { data() { return { list: [], //列表数组 listLoading: false, //上滑列表加载(每一次上滑的时候) finishedList: false, //上滑列表加载完了所有数据(没有更多了) pullLoading: false, //下拉刷新加载动画 start: 0, //从第1页开始 limit: 10, //每页10条数据累加 qylx: "" }; }, methods: { //下拉刷新列表■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ onPullRefresh() { this.list = []; this.start = 0; this.finishedList = false; this.onLoadList(); }, //上滑加载列表________________________ onLoadList() { // 异步更新数据 if (this.finishedList) return; var data = { start: this.start, limit: this.limit, qylx: this.qylx }; this.$d.API_NAME(data, { success: d => { /*这里写代码*/ this.list = this.list.concat(d); this.pullLoading = this.listLoading = false; // 加载和下拉状态结束 this.finishedList = d.length === 0; //上滑列表加载完了所有数据(没有更多了) } }); this.start++; } // ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ } }; </script>