外观
useCodeTimer - 验证码倒计时
约 526 字大约 2 分钟
2025-11-06
useCodeTimer 是验证码倒计时组合式函数,专门用于验证码发送场景。
快速开始
<template>
<view>
<un-button @tap="start" :text="current"></un-button>
</view>
</template>
<script setup lang="uts">
import { useCodeTimer } from '@/uni_modules/uview-unix'
const { start, reset, current } = useCodeTimer({
seconds: 30,
startText: '获取验证码',
changeText: 'X秒重新获取',
endText: '重新获取'
})
</script>API 参考
useCodeTimer(options: UnCodeTimerOptions)
创建验证码倒计时实例。
参数
| 参数 | 说明 | 类型 | 必填 | 默认值 |
|---|---|---|---|---|
| seconds | 倒计时总时长(秒) | number | 是 | - |
| startText | 初始按钮文本 | string | 否 | '获取验证码' |
| changeText | 倒计时中按钮文本(X会被替换为剩余秒数) | string | 否 | 'X秒重新获取' |
| endText | 倒计时结束按钮文本 | string | 否 | '重新获取' |
| keepRunning | 是否持久化状态,应用意外关闭后恢复 | boolean | 否 | true |
| uniqueKey | 存储的唯一标识,用于区分多个倒计时 | string | 否 | UVIEW_COUNT_CODE |
| onStart | 倒计时开始时的回调 | Function | 否 | - |
| onChange | 倒计时变化时的回调(返回当前按钮文本) | Function | 否 | - |
| onEnd | 倒计时结束时的回调 | Function | 否 | - |
返回值
返回一个 UnUseCodeTimer 对象,包含以下属性和方法:
| 属性/方法 | 说明 | 类型 |
|---|---|---|
| start | 开始倒计时 | Function |
| reset | 重置倒计时 | Function |
| current | 当前按钮文本 | string |
数据类型
/**
* 验证码倒计时选项类型
* 用于配置验证码倒计时的参数
*/
type UnCodeTimerOptions = {
seconds: number; // 倒计时总时长(秒)
startText?: string; // 初始按钮文本
changeText?: string; // 倒计时中按钮文本
endText?: string; // 倒计时结束按钮文本
keepRunning?: boolean; // 是否持久化状态
uniqueKey?: string; // 存储的唯一标识
onStart?: () => void; // 开始回调
onChange?: (value: string) => void; // 变化回调
onEnd?: () => void; // 结束回调
}注意事项
- 唯一标识:当页面有多个验证码倒计时实例时,建议设置不同的
uniqueKey以避免状态冲突 - 文本替换:
changeText中的X或x会被自动替换为剩余秒数
