1. 훅(Hooks)이란

2. 훅 정책(훅을 사용할 수 있는 위치)

3. 커스텀 훅이란?

4. 커스텀 훅과 JS 모듈의 차이점 및 커스텀 훅을 사용해야 하는 이유

5. 커스텀 훅 정의 및 사용방법 예시

커스텀 훅 정의

// usePostUser.js
// DB에 유저 정보 저장

const usePostUser = () => {
  const [isError, setIsError] = useState();

  // 커스텀훅 가져다 쓸 때 이벤트 핸들러 등에 등록할 수 있도록 함수를  따로 분리 후 반환
  // 외부에서 아래 함수를 실행 시 isError에 에러 여부가 반영된다.
  const postUser = async (userData) => {
    try {
      await addDoc(collection(db, "users"), userData);
      setIsError(false);
    } catch (e) {
      console.error("오류 발생 - usePostUser.js \\n", e);
      setIsError(true);
    }
  };

  return { postUser, isError };
};

export default usePostUser;

커스텀 훅 사용방법 예시