React Hook 규칙 정리 (Rules of Hooks)

1. 핵심 규칙 2가지

규칙 번호 설명
1 Hook은 반드시 컴포넌트 최상단(top level) 에서 호출해야 함
2 Hook은 반드시 함수형 컴포넌트 또는 사용자 정의 Hook 내부에서만 호출해야 함

2. 잘못된 사용 예시

조건문이나 반복문 안에서 사용 (규칙 1 위반)


function MyComponent() {
  if (condition) {
    const [state, setState] = useState(0); // 잘못된 사용
  }
}

일반 함수나 클래스 내부에서 사용 (규칙 2 위반)


function helper() {
  const [state, setState] = useState(0); // 잘못된 사용
}

class MyComponent extends React.Component {
  render() {
    const [state, setState] = useState(0); // 클래스에서는 사용 불가
  }
}


3. 올바른 사용 예시

컴포넌트 최상단에서 호출

function MyComponent() {
  const [state, setState] = useState(0); // 올바른 위치
}

사용자 정의 Hook 내부에서 호출


function useCustomHook() {
  const [value, setValue] = useState(0); // 사용 가능
  return [value, setValue];
}


4. 사용자 정의 Hook 작성 규칙

항목 설명
이름 규칙 반드시 use로 시작 (useForm, useToggle 등)
내부 동작 다른 Hook (useState, useEffect 등)을 자유롭게 사용할 수 있음

5. Hook 규칙 자동 감지 설정 (ESLint)