본문 바로가기
Web Development/React

React/ part.3 Hook

by Krystal K 2023. 4. 24.

Hook?

해당 글에서는 리액트의 주요 개념인 props와 state를 다루기 전에 알아야할 Hoo에 대한 기본적인 개념 정리를 다루고 있습니다.

이어지는 게시글에서 props와 state에 대해 자세히 다룹니다.


1. Hook

class component ⇒ function component

 

이전에 작성한 React part.2 component에서 hook의 등장으로

function component를 더 활발하게 사용하게 되었다고 언급한 바 있다. 

 

Hook은 상태 관리 및 라이프 사이클을 관리해주는 함수로서 함수 컴포넌트의 단점 보완한다.

clacc component에서만 사용이 가능하던 기능을 function component에서도 사용할 수 있도록 연동해주는 함수이다.

 

 

다시 짧게 짚어보는 function component 장점

더보기

선언하기 편함

직관적

메모리자원 덜 사용

이러한 장점에도 사용하지 못하던 함수 컴포넌트는 hook의 등장으로 부활하게 된다.

 

 

2. Hook 특징

함수 컴포넌트에서만 사용이 가능하다.

( 애초에 함수컴포넌트를 사용하려고 만들어졌다.)

 

hook의 이름은 반드시 use-로 시작한다.

 

리액트에서 제공하는 내장 hook이 존재한다.

(useState, useEffect…)

⇒ 외부 라이브러리 없이도 사용이 가능하다.

 

외부 라이브러리 또는 내장 hook이 없는 경우 직접 만들 수 있다.

custom hook

 

 

3. Hook 사용 규칙

 

함수 컴포넌트 내에서만 호출할 수 있다. 

Hook을 호출할 수 있는 곳은 단 두곳이다.

함수 컴포넌트 내부

custom Hook 내부

함수 컴포넌트 밖에서는 호출할 수 없다.

또한 자바스크립트 함수에서도 호출할 수 없다.

 

함수 컴포넌트 내의 최상위(at the top leve)에서만 호출할 수 있다.

React가 여러 Hook들을 구분할 수 있는 유일한 정보는 Hook이 사용된 순서이기 때문에

이러한 규칙을 지켜 작성해야 렌더링 될 떄마다 돌일한 순서로 Hook이 호출되는 것을 보장할 수 있다.

 

반복문, 조건문 등의 중첩문에서는 호출이 안된다.

특정 조건에 부합하지 않을 경우 Hook이 호출되지 않아, Hook이 사용된 순서가 섞이게 된다.

 

이 밖의 규칙으로

return문 아래에서도 호출이 안된다.

컴포넌트 선언을 한 위에서 호출해도 작동이 안된다.

 

 

 


잘못된 정보가 있다면 댓글로 피드백주세요. 확인 후 수정하겠습니다^-^

더 정확한 정보 혹은 더 효율적인 방식이 있을 경우 댓글로 의견을 공유해주세요!

728x90

'Web Development > React' 카테고리의 다른 글

React/ part.3 state  (0) 2023.04.24
React / part.3 props  (0) 2023.04.24
React/ part.2 Routing과 Router  (0) 2023.04.23
React/ part.2 component  (1) 2023.04.22
React/ part.2 JSX  (0) 2023.04.21