Skip to content

useCountdown

类别
导出体积
565 B
上次更改
7 months ago

useIntervalFn 的包装器,提供倒计时器。

示例

🚀
Rocket launch in 5 seconds
Countdown:

使用方法

ts
import { 
useCountdown
} from '@vueuse/core'
const
countdownSeconds
= 5
const {
remaining
,
start
,
stop
,
pause
,
resume
} =
useCountdown
(
countdownSeconds
, {
onComplete
() {
},
onTick
() {
} })

您可以使用 ref 来更改初始倒计时。start()resume() 也接受下一个倒计时的新值。

ts
import { 
useCountdown
} from '@vueuse/core'
import {
shallowRef
} from 'vue'
const
countdown
=
shallowRef
(5)
const {
start
,
reset
} =
useCountdown
(
countdown
, {
}) // change the countdown value
countdown
.
value
= 10
// start a new countdown with 2 seconds
start
(2)
// reset the countdown to 4, but do not start it
reset
(4)
// start the countdown with the current value of `countdown`
start
()

类型声明

显示类型声明
ts
export interface UseCountdownOptions {
  /**
   *  Interval for the countdown in milliseconds. Default is 1000ms.
   */
  
interval
?:
MaybeRefOrGetter
<number>
/** * Callback function called when the countdown reaches 0. */
onComplete
?: () => void
/** * Callback function called on each tick of the countdown. */
onTick
?: () => void
/** * Start the countdown immediately * * @default false */
immediate
?: boolean
} export interface UseCountdownReturn extends Pausable { /** * Current countdown value. */
remaining
:
ShallowRef
<number>
/** * Resets the countdown and repeatsLeft to their initial values. */
reset
: (
countdown
?:
MaybeRefOrGetter
<number>) => void
/** * Stops the countdown and resets its state. */
stop
: () => void
/** * Reset the countdown and start it again. */
start
: (
countdown
?:
MaybeRefOrGetter
<number>) => void
} /** * Wrapper for `useIntervalFn` that provides a countdown timer in seconds. * * @param initialCountdown * @param options * * @see https://vueuse.org/useCountdown */ export declare function
useCountdown
(
initialCountdown
:
MaybeRefOrGetter
<number>,
options
?: UseCountdownOptions,
): UseCountdownReturn

源码

源码演示文档

贡献者

一纸忘忧
IlyaL
Robin
Anthony Fu
SerKo
Arthur Darkstone
Anthony Fu
Renato Lacerda
Neo Fu

更新日志

7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
93591 - fix: start() should accept a custom initial value (#4554)
69ced - feat: new function (#4125)