Skip to main content

Command Palette

Search for a command to run...

nextjs와 리액트 hook의 관계

Published
•1 min read•View as Markdown
export const useCheckAuth = () => {
  const { register, handleSubmit } = useForm<AuthResp>({ mode: 'onChange' })
  const [isSubmitting, setIsSubmitting] = useState(false)
  const setEmail = useSetRecoilState(userEmailAtom)
  const router = useRouter()
  return {
    register,
    handleSubmit,
    isSubmitting,
    setIsSubmitting,
    setEmail,
    router,
  }
}

리팩토링을 진행하던 중에 위와 같은 코드를 작성했었는데..

builderror

vercel에 빌드하고 나니 빌드 에러가 터졌다.

쭉 보니 내가 만든 useCheckAuth.tsx라는 파일이 문제였다.

다행히도 next 문서에 친절하게 알려주고 있었다.

가장 첫번째에 나오는 Make sure to move any non-pages out of the pages folder라는 문구가 나온다. 즉 hooks는 pages 폴더에 넣지 말라는 얘긴데,

내가 생각해봤을 때, pages 폴더 내에 있는 파일들은 라우팅 용도로 사용되고, pages 폴더 내에 있는 파일들에 hooks가 사용된다 하더라도, hooks 자체는 라우팅과 직접적인 연관이 없어서 그런 것 같다.

단순히 리액트로만 개발을 했을 때는 hooks를 어느 폴더에 만들어도 전혀 상관이 없었는데,

nextjs는 프레임워크여서 제약을 어느정도 지켜야 했기 때문에 발생한 오류다.

리팩토링 작업을 하면서 더 마주치게 되겠지만 하마터면 몰랐을 지식을 조금씩 알아가는 것 같아서 뿌듯하다.

참고자료

More from this blog

shadcn UI의 checkbox는 왜 indeterminate이라는 상태가 존재하는가?

예전에 shadcn으로 checkbox UI를 만들어보다가 shadcn 코드베이스에 indeterminate 라는 상태가 있는 것을 보게 되었다. 체크 상태는 체크/체크 해제 밖에 없는 것 아닌가? 라고 생각했고, 한 번 indeterminate의 정체가 뭔지 살펴보기로 했다. 체크박스에는 체크와 해제 외에 세 번째 상태가 있다. 이 상태의 이름은 inde

Oct 10, 20269 min read9

코드제로투원 프로젝트 회고

약 6개월간 진행한 프로젝트를 2주 전에 끝마쳤다. 원래 사이드프로젝트에 대한 회고를 잘 작성하지 않는 편이어서, 이번에도 고민을 좀 했지만, 여태까지 프로젝트를 하면서 가장 많이 기억에 남은 기억이라 이렇게 회고를 작성하려고 한다. 참여하게 된 계기 올해 1월, 코드제로투원이라는 스터디 플랫폼 사이드프로젝트에 참여했다. 직전에는 자취생들을 위한 식단 추천

Jul 17, 20265 min read40
코드제로투원 프로젝트 회고

haseung-log

33 posts