mescroll - uni-app【wxs+renderjs實現(xiàn)】下拉刷新上拉加載組件

起步

地址一:mescroll官方文檔
地址二:uni-app插件市場
地址三:GitHub下載源碼
地址四:下載好的源碼 取件碼:z97x

用法

1. 可以在GitHub下載源碼,或用下載好的,也可以通過 npm install --save mescroll-uni,去下載。
2. 下載好的項目就是下圖這樣。
3. 我們將uni_modules目錄下的mescroll-uni直接復(fù)制到自己項目中,列如:
4. 將把剛才復(fù)制進來的mescroll-uni掛在到全局,也就是main.js
/**
 * @note Register for global drop-down refresh and pull up to load components 注冊全局下拉刷新,上拉加載組件
 * */
import MescrollBody from "@/components/mescroll-uni/components/mescroll-body/mescroll-body.vue"
import MescrollUni from "@/components/mescroll-uni/components/mescroll-uni/mescroll-uni.vue"
Vue.component('mescroll-body', MescrollBody)
Vue.component('mescroll-uni', MescrollUni)
5. 然后在我們要用到的頁面中直接調(diào)用組件并且要引入組件中mescroll-mixins.js
<template>
     <mescroll-body ref="mescrollRef" @init="mescrollInit" :fixed="true" :isLock="true" @down="downCallback" @up="upCallback" :up="upOption">
                      // 寫我們要渲染的內(nèi)容
     </mescroll-body>
</template>

<script>
import MescrollMixin from "@/components/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
export default {
    mixins: [MescrollMixin], // 使用mixin
    data () {
        return {
        
          }
    },
    methods: {
        /*下拉刷新的回調(diào) */
        downCallback(){
             //延時為了看效果
            setTimeout(() => {
                this.mescroll.resetUpScroll()
            }, 800)
        },
        /*上拉加載的回調(diào): 其中page.num:當(dāng)前頁 從1開始, page.size:每頁數(shù)據(jù)條數(shù),默認(rèn)10 */
        async upCallback(page){
            let data = {
                // 要傳的參數(shù)
                page: page.num
            }
            const { code,entity,message } = await // 后面跟的就是你們封裝好的api,列如:this.http.post/get('api',{data})
            if(code == 200){
                  //聯(lián)網(wǎng)成功的回調(diào),隱藏下拉刷新和上拉加載的狀態(tài);
                  this.mescroll.endSuccess(entity.list.length);// 括號里面寫的是總個數(shù)
                  //設(shè)置列表數(shù)據(jù)
                  if(page.num == 1) this.resultData = []; //如果是第一頁需手動制空列表
                  //追加新數(shù)據(jù)
                  this.resultData = this.resultData.concat(entity.list); // 所有的數(shù)據(jù)
            } else {
                  // 這里面寫請求失敗的方法
                  console.log('請求失敗')
            }
        }
    }
}
</script>
6. 如果要在點擊之后請求接口數(shù)據(jù),那么不要直接this.upCallback(),這樣的話你的頁數(shù)是錯誤的。
// 我們可以用組件提供好的。
this.mescroll.resetUpScroll()
// 這樣我們每次點擊請求的時候他的頁數(shù)都會變?yōu)?
7. 這也是在項目中所遇到的一些問題,希望對您有幫助。
8. 具體要實現(xiàn)那些功能還是去看文檔。
????
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容