Module CSS로 정의한 CSS 파일은 해싱 알고리즘으로 클래스 명이 변경되기 때문에 다른 CSS 파일에서 접근해 스타일을 덮어쓰기 어렵다. 컴포넌트에서의 스타일을 덮어쓰고 싶다면 사용하는 곳에서 div 태그 등으로 한번 감싸고, > 같은 선택자를 이용해 접근해 변경하는 게 필요하다(네임 스페이스를 구분해준다는 점은 편하지만, 이런 점은 좀 아쉬운 것 같다).
useNavigate로 생성하는 navigate 함수의 타입은 react-router-dom에서 제공하는 NavigateFunction이다. 타입 정의가 필요한 곳에 `import { NavigateFunction } from 'react-router-dom'으로 불러와서 사용하면 된다.
훅이나 라이브러리에서 제공되는 다양한 기능들은 그에 맞는 타입 정의가 함께 제공되는 경우가 많은 것 같다. 직접 타입 정의하려고 머리 싸매기 전에 먼저 잘 찾아보자.
useEffect 내부에선 커스텀 훅을 사용할 수 없지만, 커스텀 훅 내부에선 useEffect를 사용할 수 있다. 적절하게 활용해서 반복되는 로직을 잘 훅으로 쪼개보자.
useNavigate를 직접 컴포넌트 외부에서 쓰려면 커스텀 훅이 돼야하지만, useNavigate로 생성하는 navitage 함수도 Props로 전달하는 게 가능하고, 필요하면 유틸 성격으로 분리하는 게 가능하다.