코딩/REACT
리액트로 간단한 시계 만들기
알파세
2020. 11. 30. 22:48
리액트로 간단한 시계를 만들어보겠습니다.
import React, { useState, useEffect } from 'react';
import moment from 'moment';
function ClockContainer() {
let timer: any = null;
const [time, setTime] = useState(moment());
useEffect(() => {
timer = setInterval(() => {
setTime(moment());
}, 1000);
return () => {
clearInterval(timer);
};
}, []);
return (
<div>
<div className="neon pink" style={{ fontFamily: 'alarm_clock' }}>
{time.format('YYYY-MM-DD')}
</div>
<div className="neon blue"> {time.format('HH-mm-ss')}</div>
</div>
);
}
export default ClockContainer;
class와 style을 제외하고 코드를 살펴봅시다
moment 모듈은 시간 관련 모듈중에서 가장 많이 사용하고 직관적인 모듈인데
개인적으로 사용을 강추합니다.
일단 밑에 코드만 보시면 됩니다.
const [time, setTime] = useState(moment()); //useState 훅을 통해 time 값 디폴트 설정
useEffect(() => {
timer = setInterval(() => { //timer 라는 변수에 인터벌 종료를 위해 저장
setTime(moment()); // 현재 시간 세팅
}, 1000); //1000ms = 1s 간 반복
return () => {
clearInterval(timer); // 함수 언마운트시 clearInterval
};
}, []);
리액트 훅과 moment 모듈로 인해서 아주 간단하게 시계 컴포넌트를 작성할 수 있습니다.
해당 결과물은 다음과 같답니다
그냥 텍스트는 안이뻐서 네온 사인 css를 추가해봤습니다