Skip to content

Refresher 下拉刷新

查看 sn-refresher 的 2.0 版本差异

基础用法

  • 自定义 scroll-viewlist-view 等滚动容器下拉刷新样式的刷新条,也可单独使用。
  • 两种显示状态:refresh(可下拉,显示图标 + 提示文本)、refreshing(刷新中,显示加载动画 + 刷新中文本)。
  • refresh 状态下点击刷新条同样会触发刷新。
vue
<template>
	<sn-refresher status="refresh"></sn-refresher>
</template>

更多演示请下载 demo 查看

双向绑定与交互控制

通过 v-model:refresher-triggered 双向绑定刷新状态,点击刷新条触发 refresh 事件;也可通过 startRefresh / stopRefresh 方法主动控制。

vue
<template>
	<sn-refresher ref="refresherRef" v-model:refresher-triggered="triggered"
		status="refresh" refresh-text="点击我触发刷新" @refresh="onRefresh"></sn-refresher>
</template>

<script setup>
	const refresherRef = ref<SnRefresherComponentPublicInstance | null>(null)
	const triggered = ref<boolean>(false)
	function onRefresh(triggeredVal: boolean): void {
		triggered.value = triggeredVal
		setTimeout(() => {
			refresherRef.value?.$callMethod('stopRefresh')
		}, 1500)
	}
</script>

自定义图标与文本

图标名称、颜色、大小与两种状态文本均可自定义,颜色、尺寸支持 $ 简写。

vue
<template>
	<sn-refresher status="refresh" icon="arrow-down-circle-line" refresh-text="我就是我,不一样的烟火~"
		text-color="$success" icon-color="$success"></sn-refresher>
	<sn-refresher status="refreshing" refreshing-text="努力刷新吖..." text-size="$14" icon-size="$18"
		text-color="$primary" icon-color="$primary" custom-style="margin-top:12px;"></sn-refresher>
</template>

属性

参数说明类型默认值可选值
v-model:refresher-triggered绑定当前刷新状态,true 表示刷新已触发Booleanfalsetrue | false
status显示状态Stringrefreshrefresh | refreshing
icon未刷新状态下的图标名称Stringrefresh-line-
refreshText未刷新状态下的文本提示,为空时显示 松开刷新String''-
refreshingText刷新中状态下的文本提示,为空时显示 刷新中String''-
textSize文本字体大小(支持 $ 简写),为空时为 13px × 字体乘数String | Number''-
iconSize图标大小(支持 $ 简写),为空时为 14px × 字体乘数String | Number''-
iconColor图标颜色(支持 $ 简写),为空时为主题线条文本色String''-
textColor文本颜色(支持 $ 简写),为空时为主题线条文本色String''-
hoverStopPropagation是否阻止点击态事件冒泡Booleanfalsetrue | false
customStyle自定义根节点样式UTSJSONObject | String''-
customClass自定义根节点外部样式类String''-
iconClass自定义图标节点外部样式类String''-
iconStyle自定义图标节点内联样式UTSJSONObject | String''-
textClass自定义文本节点外部样式类String''-
textStyle自定义文本节点内联样式(默认带 6px 左边距)UTSJSONObject | String''-
loadingClass自定义刷新中加载动画节点外部样式类String''-
loadingStyle自定义刷新中加载动画节点内联样式UTSJSONObject | String''-

事件

名称类型说明
refresh(triggered: boolean) => Voidrefresh 状态下点击刷新条时触发,组件进入刷新中状态并置位 refresher-triggered

方法

名称参数返回值描述
startRefresh--主动开始刷新,切换到刷新中状态并置位 refresher-triggered
stopRefresh--主动结束刷新,恢复可下拉状态并复位 refresher-triggered

使用 MIT 协议