JavaScript에는 주기적으로 인자를 실행시키는 Interval이라는 함수가 존재한다.
하지만 React에서 이 함수를 실행 할 경우 동작이 되지 않기때문에 따로 Custom useInterval 을 제작하여 사용해야된다.
useInterval 함수를 생성한다,
function useInterval(callback: any, delay: any) {
const savedCallback = useRef<any>();
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
useEffect(() => {
function tick() {
savedCallback.current();
}
if (delay !== null) {
const id = setInterval(tick, delay);
return () => clearInterval(id);
}
}, [delay]);
}
위에 코드를 작성하여 일정시간마다 실행되는 useInterval 리액트 훅을 생성 후 아래와 같이 사용한다.
useInterval(() => {
console.log("실행");
}, 60000);
사용하는 함수에 위와 같이 넣을 시 console.log("실행") 이 정해진 시간(60000) 마다 실행된다.
시간은 1000 이 1초이다.