codecamp

Vant PullRefresh 下拉刷新

引入

import Vue from 'vue';
import { PullRefresh } from 'vant';

Vue.use(PullRefresh);

代码演示

基础用法

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

<van-pull-refresh v-model="isLoading" @refresh="onRefresh">
  <p>刷新次数: {{ count }}</p>
</van-pull-refresh>
import { Toast } from 'vant';

export default {
  data() {
    return {
      count: 0,
      isLoading: false
    }
  },
  methods: {
    onRefresh() {
      setTimeout(() => {
        Toast('刷新成功');
        this.isLoading = false;
        this.count++;
      }, 1000);
    }
  }
}

成功提示

通过success-text可以设置刷新成功后的顶部提示文案

<van-pull-refresh
  v-model="isLoading"
  success-text="刷新成功"
  @refresh="onRefresh"
>
  <p>刷新次数: {{ count }}</p>
</van-pull-refresh>

自定义提示

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

<van-pull-refresh v-model="isLoading" :head-height="80" @refresh="onRefresh">
  <!-- 下拉提示,通过 scale 实现一个缩放效果 -->
  <img
    class="doge"
    slot="pulling"
    slot-scope="props"
    src="https://img.yzcdn.cn/vant/doge.png"
    :style="{ transform: `scale(${props.distance / 80})` }"
  >
  <!-- 释放提示 -->
  <img
    class="doge"
    slot="loosing"
    src="https://img.yzcdn.cn/vant/doge.png"
  >
  <!-- 加载提示 -->
  <img
    class="doge"
    slot="loading"
    src="https://img.yzcdn.cn/vant/doge-fire.jpg"
  >
  <p>刷新次数: {{ count }}</p>
</van-pull-refresh>

<style>
.doge {
  width: 140px;
  height: 72px;
  margin-top: 8px;
  border-radius: 4px;
}
</style>

API

Props

参数说明类型默认值
v-model是否处于加载中状态boolean-
pulling-text下拉过程提示文案string下拉即可刷新...
loosing-text释放过程提示文案string释放即可刷新...
loading-text加载过程提示文案string加载中...
success-text刷新成功提示文案string-
success-duration刷新成功提示展示时长(ms)number | string500
animation-duration动画时长number | string300
head-height v2.4.2顶部内容高度number | string50
disabled是否禁用下拉刷新booleanfalse

Events

事件名说明回调参数
refresh下拉刷新时触发-

Slots

名称说明SlotProps
default自定义内容-
normal非下拉状态时顶部内容-
pulling下拉过程中顶部内容{ distance: 当前下拉距离 }
loosing释放过程中顶部内容{ distance: 当前下拉距离 }
loading加载过程中顶部内容{ distance: 当前下拉距离 }
success刷新成功提示内容-

常见问题

在桌面端无法操作组件?

参见在桌面端使用


Vant Overlay 遮罩层
Vant SwipeCell 滑动单元格
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }