由於業務的須要界面須要實現分頁的功能,因此我就研究了一下如何利用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