插件安装

在项目中引入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>

 

GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐