[React.js] React Hooks

2024. 6. 12. 09:16React.js

728x90

클래스 컴포넌트의 기능을 함수 컴포넌트에서 사용할 수 있도록 도와주는 메서드

 

과거에는 클래스 컴포넌트만 모든 기능을 이용할 수 있었고, 함수 컴포넌트는 UI 랜더링만 가능했었음

→  근데 클래스 컴포넌트는 문법이 있어서 코드가 복잡

 

훅의 예시

 

1.useState

https://mm-study-front.tistory.com/38

 

[React.js] State

사물이 현재 가지고 있는 형태나 모양 사물에 따라 현재 상태는 다르고, 상태를 바꿀 수도 있음 리액트 컴포넌트는  State를 가지고 있음한 컴포넌트에 state를 여러 개 가지고 있을 수도 있음  

mm-study-front.tistory.com

 

2.useRef

https://mm-study-front.tistory.com/42

 

[React.js]useRef

새로운 Referece 객체를 생성하는 기능 변수가 컴포넌트 내부의 변수로 활용돼 특정 요소 DOM 접근 가능하고 요소 조작도 가능 값이 변하더라도 리렌더링을 유발하지 않음 → 리렌

mm-study-front.tistory.com

 

등등 use가 붙는 함수들

 


훅의 특징 

 

1. 함수 컴포넌트, 커스텀 훅 내부에만호출가능

 import { useState } from "react";
 const state = useState();

 

이 경우에 에러 발생

Error: Invalid hook call. Hooks can only be called inside of the body of a function component.

 

 

2. 조건부로 호출될 수 없음

→ 리액트가 렌더링 할 때 조건문 내부에 있으면 호출순서가 엉망이 돼 내부 순서 오류 발생

 if (true) {
     const state = useState();
   }

 

비주얼코드 확장 프로그램 깔면 오류라고 나옴

React Hook "useState" is called conditionally. React Hooks must be called in the exact same order in every component render

 

 

3. 나만의 훅 만들 수 있음

 

굉장히 쉬움 함수이름 앞에 use라고 치면 끝!

주로 커스텀 hook은 같은 파일로 두지 않고 따로 폴더를 만들어서 관리하는 경우가 많음

728x90

'React.js' 카테고리의 다른 글

[React.js] useEffect  (87) 2024.06.16
[React.js] 간단한 실습 2. 인원수 카운트앱  (2) 2024.06.15
[React.js]useRef  (0) 2024.06.11
[React.js] 비슷한 구조의 state 다루기  (1) 2024.06.10
[React.js] 실습1. 간단한 정보기입 폼  (0) 2024.06.09