Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- reat if문
- filter()
- useEffect()
- Eventlitener
- new Date()
- setDate
- isNaN()
- includes()
- 차집합
- charAt()
- substring()
- Number()
- useRef()
- indexOf()
- toUpperCase()
- React
- jsx반복문
- map()
- repeat()
- sort()
- slice()
- useState()
- 3진수
- getday()
- 항해99솔직후기 #항해99장점 #항해99단점 #부트캠프추천
- Math.sqrt()
- 소수점 올림내림
- parseInt()
- 교집합
- Math.floor()
Archives
- Today
- Total
개발자로 전향중
UseCountup 자동으로 숫자올라가기 본문
import { useEffect, useState } from 'react'
function easeOutExpo(t: number): number {
return t === 1 ? 1 : 1 - Math.pow(2, -10 * t)
}
export default function useCountNum(end: number, start = 0, duration = 2000) {
const [count, setCount] = useState(start)
const frameRate = 1000 / 60
const totalFrame = Math.round(duration / frameRate)
useEffect(() => {
let currentNumber = start
const counter = setInterval(() => {
const progress = easeOutExpo(++currentNumber / totalFrame)
setCount(Math.round(end * progress))
if (progress === 1) {
clearInterval(counter)
}
}, frameRate)
}, [end, frameRate, start, totalFrame])
return count
}
'React' 카테고리의 다른 글
react 표 만들고 싶을 때 참고 (0) | 2022.10.26 |
---|---|
react hook form 사용 예시 and 자동 전화번호 하이픈 (1) | 2022.10.06 |
Swiper react/typescript 화살표 커스텀 및 slider 인덱스 (0) | 2022.09.14 |
ReactElement vs ReactNode vs JSX.Element (0) | 2022.09.05 |
React SEO (0) | 2022.08.26 |