HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
🙂
동근팀
/
📚
학습 주제 목록
/
🐯
리액트 훅 규칙
🐯

리액트 훅 규칙

작성자
조예지
발표일
Dec 9, 2022
No
10
OKKY - React hook이 조건문 내에서 쓰일 수 없지 않나요?
안녕하세요! 리액트를 공부중인 학생입니다.graphQL을 쓰고 있어서 useQuery와 useEffect 훅을 사용하고 있습니다.근데 조건문 내에서 훅을 쓸 수 없다고 했는데, 작동하는 현상이 발생해서 도대체 왜 에러가 안나는 것인지 궁금해서 질문드립니다.const {loading, error, data } =useQuery(MY_QUERY)위 코드
OKKY - React hook이 조건문 내에서 쓰일 수 없지 않나요?
https://okky.kr/articles/797461
OKKY - React hook이 조건문 내에서 쓰일 수 없지 않나요?
Hook의 규칙 - React
Hook 은 React 16.8에 새로 추가된 기능입니다. Hook은 class를 작성하지 않고도 state와 다른 React의 기능들을 사용할 수 있도록 해줍니다. Hook은 JavaScript 함수입니다. 하지만 Hook을 사용할 때는 두 가지 규칙을 준수해야 합니다. 우리는 이러한 규칙들을 자동으로 강제하기 위한 linter 플러그인 을 제공하고 있습니다. 반복문, 조건문 혹은 중첩된 함수 내에서 Hook을 호출하지 마세요.
Hook의 규칙 - React
https://ko.reactjs.org/docs/hooks-rules.html
Hook의 규칙 - React
notion image
 
  • 반복문, 조건문 혹은 중첩된 함수 내에서 hook을 호출하지 않아야 합니다!
  • 항상 React 컴포넌트 함수의 최상위(at the top level)에서 Hook을 호출해야 합니다.
  • 이 규칙을 따르면 컴포넌트가 렌더링 될 때마다 항상 동일한 순서로 Hook이 호출되는 것이 보장됩니다.
  • 따라서 React가 useState, useEffect를 여러번 호출되는 중에도 hook의 상태를 올바르게 유지할 수 있게 해줍니다.
 
 

“오직 React 함수 내에서 Hook을 호출하기”

Hook을 일반적인 JavaScript 함수에서 호출하지 마세요. 대신 아래와 같이 호출할 수 있습니다.
  • React 함수 컴포넌트에서 Hook을 호출
  • Custom Hook에서 Hook을 호출하세요.
 
 

lint 설정

  • 이 플러그인은 Create React App에 기본적으로 포함되어 있습니다.
// ESLint 설정 파일 { "plugins": [ // ... "react-hooks" ], "rules": { // ... "react-hooks/rules-of-hooks": "error", // Checks rules of Hooks "react-hooks/exhaustive-deps": "warn" // Checks effect dependencies } }