vue-infinite-scroll下拉加载

列表下拉加载组件,npm下载vue-infinite-scroll插件引入,直接按需引入element的InfiniteScroll不起作用

1.mainjs引入vue-infinite-scroll组件

import vueiInfinite from 'vue-infinite-scroll';
Vue.use(vueiInfinite);

2. html,scroll-wrap盒子设置高度、滚动(height:xxxpx,overflow:auto)

 <div class="list">   
   <div class="scroll-wrap" v-infinite-scroll="getLoadData" infinite-scroll-    
    disabled="stop"   infinite-scroll-immediate="false" infinite-scroll-distance='1'>
     <div v-for="(item,index) in list" :class="[index===activeKey?'active':'','item']"
       :key="index" @click="handleClick(item,index)">
          {{item.name}}
      </div>
      <p class="explain" v-if="loading">加载中...</p>
      <p class="explain" v-if="noMore&&list.length">没有更多了</p>
      <p class="empty" v-if="!list.length&&noMore&&!loading">暂无数据</p>
    </div>
</div>

 3.data数据据设置

 data() {
    return {
      list: [],
      loading: false,   //数据请求中,暂时停止请求
      pageNum: 1,
      pageSize: 5,
      noMore: false,   //没有更多数据
   }
}
 computed: {
    stop() {     //暂停请求
      return this.loading || this.noMore;
    },
 },

 

4. 请求

getLoadData() {
      this.loading=true
      const params = {
        ...this.requestParams,
        pageNum: this.pageNum,
        pageSize: this.pageSize,
      };
      getVideo(params).then(res => {
          const data = res?.data
          const content =data?.dataList || [];
          if (data?.totalPage <= this.pageSize) {
            this.noMore = true;
            return
          } else {
            this.pageNum++;
            this.noMore = false;
          }
          if (content.length > 0) {
            this.list = [...this.list, ...this.handleDateFormat(content)]; 
          }
      })
      .catch(()=>{
          this.noMore=true
      })
      .finally(() => {
         this.loading = false;
      });
},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值