這是我在做一個demo的一個上垃加載下拉刷新功能時所遇到的問題,由於傷了好一會腦筋,所以留下這篇筆記以供后續查詢;
在上代碼前建議在開發項目時不要優先選擇vux這個框架,因為有一些常用的功能組件官方已不再更新,當然如果你的項目中沒有那些功能的話,這個框架的確是一個不錯的選擇,或者說用別的框架代替vux官方放棄的功能,也是可以的,具體看個人吧!
先說說我遇到的問題吧:其實問題就一個,就是上拉加載的問題。
1、一開始我是用該組件的@on-scroll-bottom觸發方法實現數據加載,此方法由該組件的scroll-bottom-offset屬性觸發,官方文檔上說明這個方法會觸發多次,我想着用一個狀態去禁止多吃觸發,結果失敗了,果斷換了另一個方法,即@on-pullup-loading。
2、@on-pullup-loading這個方法是可以實現的,不過有幾個注意點需要格外注意,因為這個方法只觸發一次,那么怎么讓它可以多次執行呢。。。。 嘿嘿!! 上代碼先
loadMore () { this.pageNum ++; this.getNewsList(false);
},
refresh () {
this.pageNum = 1;
this.getNewsList(true)
},
getNewsList (type) { this.showloading = true let param = { pageSize:10, pageNum:this.pageNum, type: parseInt(this.tabType) } api.getSearchList(param).then(res => { if(res.data.list.length == 0){ this.isScrollerShow = false; } this.isDataShow= true; // type == undefined 表示為刷新或者是初始化 type = false 表示加載更多 if( type == false){ for(let item of res.data.list){ this.list.push(item) } // 判斷是否還有數據 if(res.data.list.length < param.pageSize){ // 沒有就顯示底線以及禁用上拉 this.isEnd = true;
// 沒有數據時這里要禁止調上拉組件,不然會一直顯示在加載中 this.status.pullupStatus = 'disabled' }else{ // 還有數據就開啟上拉,並重置 這里一定要設置 pullupStatus為default 否則下拉組件會一直顯示加載中 this.status.pullupStatus = 'default' } return; }else if( type == true ){
this.$refs.scroller.enablePullup() // 啟用上拉組件 ==》 這步極關鍵,否則下拉刷新后再上拉無效
this.$nextTick( ()=> {
this.$refs.scroller.donePulldown()
})
} // 以下為下拉刷新或初始化
this.isLoadMoreShow = false; this.isScrollerShow = true; this.list = res.data.list;
this.isEnd = false;
}) },
好吧!大致就記得這么多了,希望能幫主到人,如果有問題可以留言,但是不對的話請勿噴!!!