使用mescroll-uni插件实现上拉加载和下拉刷新

1、首先将到uni-app插件市场下载mescroll-uni https://ext.dcloud.net.cn/plugin?id=343
或者去mescroll官网下载 http://www.mescroll.com/load.html?v=190725/
2、将下载到(mescroll-uni目录)的.vue文件复制到自己的项目中components目录下
3、在全局  /  页面中引入插件

全局引入:
main.js文件

import MescrollUni from '@/components/mescroll-uni/mescroll-uni.vue';
Vue.component('mescroll-uni', MescrollUni)


页面引入:
import MescrollUni from "@/components/mescroll-uni/mescroll-uni.vue";
components: {
	MescrollUni
},

4、在具体页面中的简单示例 :

<template>
  <view class="container">
    <mescroll-uni mescroll-body
                  ref="mescrollRef"
                  @init="mescrollInit"
                  @down="downCallback"
                  @up="upCallback"
                  :down="downOption"
                  :up="upOption"
                  :top='40'>

      <!-- 页面显示的内容 -->
      <yongsuoItem />
      
    </mescroll-uni>
  </view>
</template>

<script>
import { wllib } from '@/utils/index.js'
import yongsuoItem from '@/components/yewu/yongsuoItem'
export default {
  components: {
    yongsuoItem,
  },
  data() {
    return {
      upOption: {
        page: {
          num: 0,
          size: 10, // 每页数据的数量,默认10
        },
        noMoreSize: 5, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
        textNoMore: '没有更多了',
        empty: {
          tip: '暂无相关数据',
        },
      },
      // 列表数据
      dataList: [],
    }
  },
  methods: {
    mescrollInit(mescroll) {
      this.mescroll = mescroll
    },
    //下拉刷新时触发
    downCallback() {
      // 重置列表为第一页 (自动执行 page.num=1, 再触发upCallback方法 )
      this.mescroll.resetUpScroll()
    },
    //上拉加载时触发
    upCallback(page) {
      this.getList(page.num, page.size)
    },
    getList(num, size) {
      if (num == 1) {
        this.dataList = []
      }
      let memberId = uni.getStorageSync('loginInfo').userInfo.userId
      wllib.net.wlPost('/LockRecord/GetPageLockRecord.do', {
          memberId,
          curr_page: num,
          page_size: size,
        })
        .then((dataList) => {
          console.log(dataList)
          this.mescroll.endSuccess(dataList.data_list.length,dataList.total_page)
          //追加新数据
          this.dataList = [...this.dataList, ...dataList.data_list]
        })
        .catch(() => {
          //联网失败, 结束加载
          this.mescroll.endErr()
        })
    },
  },
}
</script>

<style lang="scss" scoped>
.container {
  padding-top: 40upx;
}
</style>

5、注意点

(1)该组件全部数据加载完毕后下拉刷新,若单页请求显示的数据没有铺满整页,则无法触发上拉加载的操作

解决办法:

   1、设置单次请求的数据量能够铺满整页(size:10 //每页返回10条数据)

    2、在 upOption上拉配置对象中添加属性 offset:750(属性值可以设置大点,单位默认是rpx)

         offset:距底部多远时,触发upCallback

( 2 ) this.mescroll.endUpScroll(true) 直接结束触发上拉加载

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
mescroll-uni是一个基于uni-app框架的下拉刷新上拉加载插件。它提供了一种简单、灵活的方式来实现页面的滚动加载效果。 使用mescroll-uni,你需要按照以下步骤进行操作: 1. 首先,你需要在你的uni-app项目中安装mescroll-uni插件。你可以使用npm命令来安装,执行以下命令: ``` npm install mescroll-uni ``` 2. 在你的页面中引入mescroll-uni插件。可以在需要使用滚动加载的页面的`<template>`中引入mescroll-uni的组件,例如: ``` <template> <view> <mescroll-uni></mescroll-uni> </view> </template> ``` 3. 在你的页面的`<script>`中引入mescroll-uni组件,并配置相应的参数。例如: ``` <script> import MescrollUni from 'mescroll-uni' export default { components: { MescrollUni }, data() { return { mescrollOptions: { down: { use: true, callback: this.downCallback }, up: { use: true, callback: this.upCallback } } } }, methods: { downCallback() { // 下拉刷新的回调函数 // 执行刷新逻辑 }, upCallback() { // 上拉加载的回调函数 // 执行加载更多逻辑 } } } </script> ``` 4. 根据你的需求,实现对应的下拉刷新上拉加载的逻辑处理。在`data`中配置`mescrollOptions`对象,通过`down`和`up`属性来配置下拉刷新上拉加载的回调函数。 这样,你就可以使用mescroll-uni插件实现下拉刷新上拉加载的效果了。具体的配置和使用方法可以参考mescroll-uni的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值