9. 훅 직접 만들기
1) 커스텀 훅
2) 예시
userId
를 입력하면 user
객체를 가져올 수 있는 커스텀 훅useUser
를 사용하는 쪽에서는 userId
만 입력해주면 user
객체가 나오니까 굉장히 편리하고 직관적이다.userId
가 변경되면 훅 내부에서 자동으로 api를 호출해서 사용자 정보를 가져올거고, useUser
훅 내부 상태값이 변경되면 자동으로 이 컴포넌트도 같이 새로운 유저와 함께 렌더링이 될 것이다.user
데이터를 가져오는 것은 비동기이지만 마치 userId
를 넣으면 user
가 바로 나오는 것 처럼 (마치 동기 프로그래밍 방식 처럼) 간편하게 작성을 할 수가 있다.3) 예시 / useMounted 훅 만들기
useEffect
에 빈 배열을 넣어주어 초기에 한 번만 실행이 되도록 한다.export default function useMounted() {
const [mounted, setMounted] = useState(false);
useEffect(() => {
setMounted(true);
}, []);
return mounted;
}
4) 기타 커스텀 훅 예시
(useBlockIfNotLogin())
(useBlockUnsavedChange(description))
(useEffectIfLoginUser(callback, deps))
(useLocalStorage(key, initalValue) ⇒ [value, setValue])