useCountDownTimer
useCountDownTimer
基于 ahooks 提供的 useCountDown
,封装实现了一段简易的倒计时逻辑。它允许你以秒为单位指定倒计时时长,自动计算剩余秒数,并提供开始与停止的操作。
函数签名
function useCountDownTimer(seconds: number): {
count: number;
isCounting: boolean;
start: (updateSeconds?: number) => void;
stop: () => void;
};
参数
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
seconds | number | 无 | 用于初始化倒计时时长(单位:秒) |
返回值
字段 | 类型 | 说明 |
---|---|---|
count | number | 剩余的倒计时秒数,自动向下取整。若为 0 表示已完成或尚未启动。 |
isCounting | boolean | 表示当前是否处于倒计时状态(true 表示正在倒计时,false 表示已结束或未开始)。 |
start | (updateSeconds?: number) => void | 启动/重置倒计时,若传入新的 updateSeconds ,则以该值作为新的倒计时秒数。 |
stop | () => void | 停止倒计时,将剩余秒数重置为 0。 |
使用示例
import React from 'react';
import useCountDownTimer from '@/hooks/useCountDownTimer';
export default function CountDownExample() {
const { count, isCounting, start, stop } = useCountDownTimer(10);
return (
<div>
<p>倒计时剩余: {count} 秒</p>
<p>状态: {isCounting ? '倒计时中' : '未开始或已结束'}</p>
<button onClick={() => start()}>开始倒计时(10秒)</button>
<button onClick={() => start(5)}>开始倒计时(5秒)</button>
<button onClick={() => stop()}>停止</button>
</div>
);
}
在上述示例中:
- 初始值为
10
,因此调用start()
会倒计时 10 秒。 - 若在运行中再次调用
start(5)
,则会重置并开始一个新的 5 秒倒计时。 stop()
随时终止当前倒计时并将剩余秒数清零。count
与isCounting
会在倒计时期间持续更新,让你方便地控制 UI 显示或触发其他业务逻辑。
Last updated on