官方文档 上拉加载,上拉刷新在加载自己的请求服务list数据时里面有个填坑,在此不赘述,如果想体验的自己去copy官方。以下直接上源码。参考了几篇类似文章,内容如有错误、bug欢迎提出问题。
export default {
data: () => {
return {
list: [],
//列表上拉加载所用参数
loading: false,
finished: false,
// 下拉刷新 设置为 false,表示加载完成
refreshing: false,
isGetData: false,
}
},
methods: {
onLoad() {
//上拉加载更多
if( this.list.length==0){
this.pageNum=1;
}else{
this.pageNum=this.pageNum+1;
}
this.getData();
this.loading = false;
},
// 下拉刷新
onRefresh() {
//下拉刷新,清空数据
this.list = [];
this.refreshing = false;
// 清空列表数据
this.finished = false;
// 将 loading 设置为 true,表示处于加载状态
this.loading = false;
this.pageNum=1;
this.getData();
},
getData(){
var self=this;
if(self.isGetData){
return;
}
self.isGetData = true;
// 判断数据是否已到最后一页 结束上拉加载更多
// pageNum 为页码请参考者 根据自己需求自行处理,在此赘述
self.$http.getList(url+"/"+pageNum)
.then((req)=>{
//获取列表数据
let reqList=req.list
if(reqList.length==0){
//判断是否列表有数据 根据自己需求修改 制作业务界面
}else{
//有数据自己做业务处理
}
if( 判断是否已经加载到最后一行){
self.finished = true;
}
}else{
Toast.fail("请求服务错误!")
}
}).catch(err => {
}).finally(() => {
this.isGetData = false;
});
}
}
}