mescroll - uni-app【wxs+renderjs实现】下拉刷新上拉加载组件

起步

地址一:mescroll官方文档
地址二:uni-app插件市场
地址三:GitHub下载源码
地址四:下载好的源码 取件码:z97x

用法

1. 可以在GitHub下载源码,或用下载好的,也可以通过 npm install --save mescroll-uni,去下载。
2. 下载好的项目就是下图这样。
3. 我们将uni_modules目录下的mescroll-uni直接复制到自己项目中,列如:
4. 将把刚才复制进来的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. 然后在我们要用到的页面中直接调用组件并且要引入组件中mescroll-mixins.js
<template>
     <mescroll-body ref="mescrollRef" @init="mescrollInit" :fixed="true" :isLock="true" @down="downCallback" @up="upCallback" :up="upOption">
                      // 写我们要渲染的内容
     </mescroll-body>
</template>

<script>
import MescrollMixin from "@/components/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
export default {
    mixins: [MescrollMixin], // 使用mixin
    data () {
        return {
        
          }
    },
    methods: {
        /*下拉刷新的回调 */
        downCallback(){
             //延时为了看效果
            setTimeout(() => {
                this.mescroll.resetUpScroll()
            }, 800)
        },
        /*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
        async upCallback(page){
            let data = {
                // 要传的参数
                page: page.num
            }
            const { code,entity,message } = await // 后面跟的就是你们封装好的api,列如:this.http.post/get('api',{data})
            if(code == 200){
                  //联网成功的回调,隐藏下拉刷新和上拉加载的状态;
                  this.mescroll.endSuccess(entity.list.length);// 括号里面写的是总个数
                  //设置列表数据
                  if(page.num == 1) this.resultData = []; //如果是第一页需手动制空列表
                  //追加新数据
                  this.resultData = this.resultData.concat(entity.list); // 所有的数据
            } else {
                  // 这里面写请求失败的方法
                  console.log('请求失败')
            }
        }
    }
}
</script>
6. 如果要在点击之后请求接口数据,那么不要直接this.upCallback(),这样的话你的页数是错误的。
// 我们可以用组件提供好的。
this.mescroll.resetUpScroll()
// 这样我们每次点击请求的时候他的页数都会变为0
7. 这也是在项目中所遇到的一些问题,希望对您有帮助。
8. 具体要实现那些功能还是去看文档。
😁😂
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容