VUE无限滚动插件vue-infinite-scroll的使用详解

插件安装

在项目中引入vue-infinite-scroll

npm install vue-infinite-scroll --save

插件导入VUE组件

引入插件

import infiniteScroll from "vue-infinite-scroll"

导入指令

export default {
        name: "ComFlowList",
        directives: {infiniteScroll},
        data(){}
}

插件状态数据属性定义

定义插件和数据列表所需用到的数据状态属性,如下:

data(){
    return {
        dataList: [],
        dataPageNum: 1,   //列表数据加载页码
        dataPageSize: 20,   //列表数据加载每页条数
        dataLoadStop: false,  //列表数据加载停止状态
        dataLoadNomore: false    //列表数据加载是否完成
    }
}

数据加载方法定义

methods:{
    
    /**
       * 加载列表数据
       */
      loadDataList(){
        //锁定数据加载状态
        this.dataLoadStop = true;

        let requestUrl = this.dataListIntUrl
        this.dataListLoadApi(requestUrl,{
          pid: this.pid,
          cid: this.cid,
          mid: this.mid,
          pagesize: this.dataPageSize,
          pagenum: this.dataPageNum
        })
          .then( function(response) {
            let queryResult = response.data;
            let datas = response.data.list;
            this.dataList = this.dataList.concat(datas);
            if(queryResult.hasnextpage == 1){
              this.dataPageNum += 1
              this.dataLoadStop = false
            }else{
              this.dataNomore = true
            }
          }.bind(this))
          .catch(function (error) { // 请求失败处理
            console.log(error);
            this.dataLoadStop = false
          }.bind(this));
      },

}

在template中使用插件directive

<template>
          <div v-infinite-scroll="loadDataList"
               infinite-scroll-disabled="dataLoadStop"
               infinite-scroll-distance="50">
            <div v-for="(item, idx) in dataList" >
                <div class="comdata"><span>{{item.name}}</span></div>
            </div>
            <div class="list-load-end">
                <span>{{dataNomore ? "--我也是有底线的--" : "加载中..."}}</span>
            </div>
          </div>
</template>

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值