1.0.6 • Published 7 months ago

easespace-ui v1.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

PullRefresh 下拉刷新

介绍

用于提供下拉刷新的交互操作。

引入

  "usingComponents": {
    "PullRefresh": "/easespace-ui/PullRefresh/index",
  }

代码演示

基础用法

下拉刷新时会触发 refresh 事件,在事件的回调函数中可以进行同步或异步操作,操作完成后将 status 设置为 false,表示加载完成。

<pull-refresh status="{{status}}" bind:refresh="onRefresh">
  <p>刷新次数: {{ count }}</p>
</pull-refresh>
data:{
  status: false,
  count: 0
}
const onRefresh = () => {
      setTimeout(() => {
        wx.showToast('刷新成功');
        this.setData({
          status: false,
          count: this.data.status+1
        })
      }, 1000);
};

自定义提示

通过插槽可以自定义下拉刷新过程中的提示内容。

<PullRefresh headHeight="{{80}}" useSlot="{{useSlot}}" status="{{status}}" bind:refresh="refresh2" bind:change="statusChange">
  <view class="demo-van-pull-refresh">
      自定义下拉
  </view>
  <view slot="header">
    <image wx:if="{{distance < 80}}" class="doge" style="transform: scale({{distance / 80}})" src="https://fastly.jsdelivr.net/npm/@vant/assets/doge.png" mode=""/>
    <image wx:else class="doge" src="https://fastly.jsdelivr.net/npm/@vant/assets/doge-fire.jpeg" mode=""/>
  </view>
</PullRefresh>
data:{
  status: false,
  distance: 0
}
statusChange(e){
    this.setData({
      distance: e.detail.distance
    })
}

API

Props

参数说明类型默认值
status是否处于加载中状态boolean-
pullingText下拉过程提示文案string下拉即可刷新...
loosingText释放过程提示文案string释放即可刷新...
loadingText加载过程提示文案string加载中...
headHeight顶部内容高度_numberstring_50
pullDistance触发下拉刷新的距离_numberstring_head-height 一致
disabled是否禁用下拉刷新booleanfalse
useSlot是否启用插槽object-

useSlot

headSlot是否使用顶部插槽,如果启用则loading、loosing、pulling插槽会失效booleanfalse
loadingSlot加载时的顶部插槽booleanfalse
loosingSlot释放时的顶部插槽booleanfalse
pullingSlot下拉时的顶部插槽booleanfalse

Events

事件名说明回调参数
refresh下拉刷新时触发-
change拖动时或状态改变时触发{ status: string, distance: number }

Slots

由于微信小程序无作用域插槽,无法在插槽获取distance,所以可以通过change事件来实时获取,处理不同的逻辑

使用插槽时一定要配置useSlot,否则可能会产生内容异常

名称说明参数
default自定义内容-
pulling下拉过程中顶部内容-
loosing释放过程中顶部内容-
loading加载过程中顶部内容-
header顶部内容-

常见问题

PullRefresh 的内容未填满屏幕时,只有一部分区域可以下拉?

默认情况下,下拉区域的高度是和内容高度保持一致的,如果需要让下拉区域始终为全屏,可以给 包裹内容 设置一个与屏幕大小相等的最小高度:

<pull-refresh >
  <view style="min-height: 100vh;" /></view>
</pull-refresh>

PullRefresh 的包裹的内容无法滚动

由于监听事件使用的是catch:touchmove 导致无法滚动,这里为什么不适用bind:touchmove, 由于bind:touchmove触发的频率很低,导致在手机端ui更新不及时产生卡顿. 如果包裹的内容需要滚动,在外层可以使用scroll-view、

<pull-refresh>
  <scroll-view style="min-height: 100vh;" /></view>
</pull-refresh>
1.0.6

7 months ago

1.0.5

7 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago