Vue+Vant的下拉刷新和上拉加载,填坑

官方文档 上拉加载,上拉刷新在加载自己的请求服务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;
      });
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值