useCountDown
提供倒计时管理能力。
基本用法
vue
<template>
<span>总时间:{{ countDown.current.total }}</span>
<span>剩余天数:{{ countDown.current.days }}</span>
<span>剩余小时:{{ countDown.current.hours }}</span>
<span>剩余分钟:{{ countDown.current.minutes }}</span>
<span>剩余秒数:{{ countDown.current.seconds }}</span>
<span>剩余毫秒:{{ countDown.current.milliseconds }}</span>
</template>
<script setup lang="ts">
import { useCountDown } from '@ryxon/use'
const countDown = useCountDown({
// 倒计时 24 小时
time: 24 * 60 * 60 * 1000
})
// 开始倒计时
countDown.start()
</script>毫秒级渲染
倒计时默认每秒渲染一次,设置 millisecond 选项可以开启毫秒级渲染。
js
import { useCountDown } from '@ryxon/use'
export default {
setup() {
const countDown = useCountDown({
time: 24 * 60 * 60 * 1000,
millisecond: true
})
countDown.start()
return {
current: countDown.current
}
}
}API
类型定义
ts
type CurrentTime = {
days: number
hours: number
total: number
minutes: number
seconds: number
milliseconds: number
}
type CountDown = {
start: () => void
pause: () => void
reset: (totalTime: number) => void
current: ComputedRef<CurrentTime>
}
type UseCountDownOptions = {
time: number
millisecond?: boolean
onChange?: (current: CurrentTime) => void
onFinish?: () => void
}
function useCountDown(options: UseCountDownOptions): CountDown参数
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| time | 倒计时时长,单位毫秒 | number | - |
| millisecond | 是否开启毫秒级渲染 | boolean | false |
| onChange | 倒计时改变时触发的回调函数 | (current: CurrentTime) => void | - |
| onFinish | 倒计时结束时触发的回调函数 | () => void |
返回值
| 参数 | 说明 | 类型 |
|---|---|---|
| current | 当前剩余的时间 | CurrentTime |
| start | 开始倒计时 | () => void |
| pause | 暂停倒计时 | () => void |
| reset | 重置倒计时,支持传入新的倒计时时长 | (time?: number): void |
CurrentTime 格式
| 名称 | 说明 | 类型 |
|---|---|---|
| total | 剩余总时间(单位毫秒) | number |
| days | 剩余天数 | number |
| hours | 剩余小时 | number |
| minutes | 剩余分钟 | number |
| seconds | 剩余秒数 | number |
| milliseconds | 剩余毫秒 | number |
