커스텀 훅
- 어떤 특정한 Hook 2개 이상이 반복된다면 커스텀 훅을 만들어낸다.
- 커스텀 훅은 react의 기본 hooks의 조합으로 이루어진다. (기본 훅 여러 개가 세트로 움직인다면? 3개를 세트로 묶어서 커스텀 훅 1개로 퉁 쳐버리면 된다.)
import {useEffect, useRef} from "react";
// 기능
// useInterval(()=>{
// console.log('hello');
// }, isRunning ? 1000 : null );
function useInterval(callback, delay){
const savedCallback = useRef();
useEffect(() => {
savedCallback.current = callback;
});
useEffect(()=>{
//왜 tick이라는 함수로 감싸서 실행했을까?
function tick(){
savedCallback.current();
}
if(delay !== null){
let id = setInterval(tick, delay);
return () => clearInterval(id);
}
},[delay]);
return savedCallback.current;
}
export default useInterval;
강의에서 만들어 본 useInterval이라는 (useRef + setInterval) 커스텀 훅이다.
왜 tick이라는 내부함수가 필요한지에 대해서도 설명해주는데 이해하기 좀 난해하다.
따로 기억할것.
※useRef는 항상 최신의 객체를 참조할 수 있게 해준다 라는 것을 기억하자.
'코딩이야기 > 인터넷 강의' 카테고리의 다른 글
seciton5 6-4. useEffect로 업데이트 감지하기 (0) | 2024.06.10 |
---|---|
section5. 6-1 로또 추첨기 컴포넌트 (0) | 2024.06.04 |
section4. 5-6 클래스와 Hooks 라이프사이클 비교 (1) | 2024.05.31 |
section4. 5-5 Hooks와 useEffect (0) | 2024.05.30 |
section4. 5-2 setInterval과 라이프사이클 연동하기 (0) | 2024.05.29 |