1
export default function Clock() {
const [time, setTime] = useState(new Date());
useEffect(() => {
setTimeout(() => {
setTime(new Date());
}, 1000);
});
return <h1>{time.getHours()}시 {time.getMinutes()}분 {time.getSeconds()}초</h1>;
}
2
export default function Clock() {
const [time, setTime] = useState(new Date());
const interval = useRef(null)
useEffect(() => {
interval.current = setInterval(() => {
setTime(new Date());
}, 1000);
return () => clearInterval(interval.current)
});
return <h1>{time.getHours()}시 {time.getMinutes()}분 {time.getSeconds()}초</h1>;
}
React로 시간을 표시하고 싶어서 1번처럼 코딩하고, 다른 잘하는 분들의 코드를 참조해보니 모두 2번처럼 setTimeout 대신에 setInterval을 사용해서 시간을 표시하시더라구요. 초보자인 제가 생각하기엔 setTimeout을 사용하면 clear과정도 필요 없고 변수도 줄어들어 나을거 같다고 생각이되는데, setInterval을 사용함으로써 얻는 이점이 무엇인지 궁금합니다.