React/처음 만난 리액트(react)

Hook의 규칙과 Custom Hook 만들기

yooni825 2023. 10. 11. 12:29

Hook의 규칙

(1) Hook은 무조건 최상위 레벨에서만 호출해야 한다.

최상위 레벨 : React 함수 컴포넌트의 최상위 레벨을 의미

-> 반복문이나 조건문 또는 중첩된 함수들 안에서 Hook을 호출하면 안된다는 의미

-> hook은 컴포넌트가 렌더링 될 때마다 매번 같은 순서로 호출되어야 함

 

(2) 리액트 함수 컴포넌트에서만 Hook을 호출해야 한다.

  • Hook은 React 함수 컴포넌트에서 호출하거나 직접 만든 커스텀 Hook에서만 호출할 수 있음

 

eslint-plugin-react-hooks

: hook의 규칙을 따르도록 강제해주는 플러그인

-> 이 플러그인을 사용하면 react 컴포넌트가 Hook의 규칙을 따르는지 아닌지 분석할 수 있음

eslint : JavaScript 코드에서 발견되는 문제 패턴을 식별하기 위한 정적 코드 분석 도구

 

Custom Hook 만들기

: 여러 컴포넌트에서 반복적으로 사용되는 로직을 Hook으로 만들어 재사용하기 위함

 

Custom Hook 추출하기

: 이름이 use로 시작하고 내부에서 다른 Hook을 호출하는 하나의 자바스크립트 함수

-> 중복된 로직을 추출하여 커스텀 Hook으로 만듦

Custom Hook은 리액트 기능이 아닌 Hook의 디자인에서 자연스럽게 따르는 규칙

 

Custom Hook의 이름은 꼭 use로 시작해야 한다!!

여러 개의 컴포넌트에서 하나의 Custom Hook을 사용할 때 컴포넌트 내부에 있는 모든 state와 effects는 전부 분리되어 있다.

-> 각 Custom Hook 호출에 대해서 분리된 state를 얻게 된다!

각 Custom Hook의 호출 또한 완전히 독립적임