vant组件下拉刷新 + 上拉加载

基础组件 Vant -list 上拉加载数据 使用

  1.  	      <!-- 实现下拉刷新 -->
     <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
     	<van-list
     	  v-model="loading"  // 初始值是false, 当组件滚动到底部时,会触发 load 事件并将 loading 设置成 true
     	  :finished="finished" // 初始值为false 若数据已全部加载完毕,则直接将 finished 设置成 true 即可。
     	  finished-text="没有更多了"
     	  @load="onLoad"
     	>
     	//  要用来加载的数据
     	<van-cell v-for="item in articleList" :key="item.aut_id" :title="item.title">
         <!-- 使用 title 插槽来自定义描述 -->
         <!-- column-num 属性是 图片显示列数 -->
         <template #label>
           <van-grid :border="false" :column-num="item.cover.images.length">
             <van-grid-item v-for="image in item.cover.images" :key="image.type">
               <van-image :src="image" />
             </van-grid-item>
           </van-grid>
           <!-- 文字说明 -->
           <div class="meta">
             <span>{{item.aut_name}}</span>
             <span>{{item.comm_count}}</span>
             <span>{{item.pubdate}}</span>
           </div>
         </template>
       </van-cell>
     </van-list>
     </van-pull-refresh>
    
     // 数据代码
         onLoad() {
       // 调用获取点击频道获取频道内容请求
       const channel_id = this.channel.id;
       const timestamp = +new Date();
       getArticles(channel_id, timestamp).then(res => {
         // 你要加载的全新文章数据
         const newArticle = res.data.data.results;
         // 数据全部加载完成 --- 如果你新请求回来的数据的数组内的数据条数为0时,此时加载完成 finished == true, 此时不会触发load事件
         if(newArticle.length === 0) {
             // 是否已加载完成,加载完成后不再触发load事件
             this.finished = true
             return
         }
         // 当前文章的列表数据
         this.articleList = [...this.articleList, ...newArticle]
         // 加载状态结束
         this.loading = false;
    
     });
    
         onRefresh() {
         // 调用获取点击频道获取频道内容请求
         const channel_id = this.channel.id;
         const timestamp = +new Date();
         getArticles(channel_id, timestamp).then(res => {
         // 你要加载的全新文章数据
         const newArticle = res.data.data.results;
         // 当前文章的列表数据
         this.articleList = [ ...newArticle, ...this.articleList];
         // 加载状态结束
         this.isLoading = false;
         // 提示
         this.$toast('刷新成功')
         });
     }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值