uniapp使用Mescroll(上拉加载下拉刷新)

uniapp使用Mescroll
在这里插入图片描述

官网:https://www.mescroll.com/
1.安装
2.全局引入

import MescrollBody from "mescroll-uni/mescroll-body.vue"
import MescrollUni from "mescroll-uni/mescroll-uni.vue"
Vue.component('mescroll-body', MescrollBody)
Vue.component('mescroll-uni', MescrollUni)

3.封装组件

<template>
  <view class="main">
    <mescroll-uni :fixed="fixed"  ref="mescrollRef" :top="top?top:'0'" :bottom="bottom?bottom:'0'" @topclick="topclick" @init="mescrollInit" @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
      <slot></slot>
	  </mescroll-uni>
  </view>
</template>
<script>
export default{
  data(){
    return{
      isShow: false,
      mescroll: undefined,
      upOption: {
        page: {
          size: 10 // 每页数据的数量,默认10
        },
        noMoreSize: 5, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
        empty: {
          use:false,
          tip: '暂无相关数据'
        },
        isBounce:false,   //ios橡皮筋回弹
        textNoMore: '已经到底了',
        bgColor:'rgb(240, 243, 244)',
        textColor:'rgba(0,0,0,0.45)'
      },
    }
  },
  props:[
    'top', // 视图上偏移量
    'bottom', // 视图下偏移量
    'fixed', // 视图下偏移量
  ],
	created() {
		console.log('展示')
		this.methods('resetMescroll', true)
	},
	beforeDestroy() {
		console.log('销毁')
		this.methods('resetMescroll', false)
  },
  methods:{
    resetMescroll (flag) {
      this.isShow = flag
    },
    downCallback () {
      console.log("出发下拉")
      this.$emit('down', this.mescroll)
    },
    upCallback (page) {
      console.log("出发上拉")
      this.$emit('up', this.mescroll, page)
    },
    mescrollInit(mescroll) {
      this.mescroll = mescroll;
      this.$emit('init', mescroll)
    },
    topclick(mescroll){
      // mescroll.scrollTo( 0, 300 )
      this.$emit('topclick', mescroll)
    }
  }
</script>

<style  lang="scss">
  .main{
    height: 100%;
  }
</style>

4.页面使用组件以及方法

<  @down="downCallback" @up="upCallback" ref="mescroll" @init="(mescroll) => {this.mescroll = mescroll}"></scroll-list>

方法:

downCallback(mescroll) {
    mescroll.resetUpScroll()
  }

  upCallback(mescroll, page) {
    this.mescroll = mescroll
    this.http({
      cmd: 'xxx',
      input: this.input.value,
      success(res) {
          // 调用mescroll的Api自动判断是否加载到底部
          mescroll.endBySize(curPageLen, this.ticketProgress.output.value.total)
        }
      }
    })
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_小郑有点困了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值