webpack+vue+mint-ui 實現上拉加載更多(Loadmore組件)

由於業務的須要界面須要實現分頁的功能,因此我就研究了一下如何利用mint-ui自帶的loadmore組件實現上拉加載更多功能。
首先在文件中引入組件數組

import {Indicator, Loadmore} from 'mint-ui';

參考了一下組件中的一些參數restful

bottomMethod 是上拉刷新執行的方法
bottomPullText  爲 pull 時加載提示區域的文字 默認值爲上拉刷新,通常我會定義爲上拉加載更多
bottomAllLoaded 若爲真,則 bottomMethod 不會被再次觸發

而後在HTML中寫法以下post

<mt-loadmore :bottom-method="loadBottomUse"
                     :bottom-all-loaded="allUseLoad" :bottomPullText='bottomText'
                     ref="loadmore">
          <div class="tab-list" v-for='item in useScoreLog'>
            <div class="tab-list-top">
              <span class="tab-name">{{item.remark}}</span>
              <span class="tab-num">{{item.score}}</span>
            </div>
            <div class="tab-list-bottom">
              <span class="tab-time">{{item.operateTime}}</span>
              <span class="tab-class">{{item.recordTypeName}}</span>
            </div>
          </div>
        </mt-loadmore>

js中寫法以下ui

首先在data的方法中定義初始化加載中的數組getScoreLog,當前頁數pageNo,是否加載allLoaded,上拉時加載的文字bottomText,初始化方法中的數量總數totalCount。this

代碼以下spa

data(){
      return {
        getScoreLog: [],
        pageNo: 1,
        allLoaded: false,
        bottomText: '上拉加載更多...',
        totalCount: '',
      }
    },

初始化方法以下

getData(){
        this.$http.post(commonUrl + "/restful/", {
          typeFlag: '1'
        }).then(response => {
          if (response.data.errcode == 0) {
            this.getScoreLog = response.data.scoreLog;
            this.totalGetCount = (response.data.recordCount + 9) / 10;
          }
        }, response => {
        });
      },

下面即是上拉加載更多的方法rest

loadBottom() {
        this.pageNo += 1;
        if (this.pageNo == this.totalGetCount) {
          this.allLoaded = true;
        }
        setTimeout(() => {
          this.$http.post(commonUrl + "/restful/", {
            pageNo: this.pageNo,
            typeFlag: '1'
          }).then(response => {
            if (response.data.errcode == 0) {
              this.getScoreLog = this.getScoreLog.concat(response.data.scoreLog);
            }
          }, response => {
          });
        }, 1500);
      },

這樣就大功告成啦~code

相關文章
相關標籤/搜索