일단 이게 무엇인지 알아보기 전에,
왜 생겼는지부터 알아보자!
리액트 컴포넌트는 클래스형 컴포넌트(Class component)와 함수형 컴포넌트(Functional component)로 나뉜다.
기존의 개발방식은 일반적으로 함수형 컴포넌트를 주로 사용하되 state
이나 Life Cycle Method
를 사용해야 할 때에만 클래스형 컴포넌트를 사용하는 방식이었다.
이유는 클래스형 컴포넌트가 함수형 컴포넌트에 비해 가지는 단점 때문이다.
클래스 문법이 어렵다.
축소가 어렵다.
Logic의 재사용이 어렵다.
최신 기술의 적용이 효과적이지 않다.
이러한 단점을 제외하고, 위에 언급한 state
나 Life Cycle Method
를 사용하기 위해서는 클래스형 컴포넌트 사용이 불가피했다.
하지만 Hooks가 등장하고 함수형 컴포넌트에서도 두 작업이 가능해졌다!
📝 잠깐정리!
정리를 해보자면 , 클래스형 컴포넌트의 요런저런 단점들을 대체하기 위해 함수형 컴포넌트가 등장!
하지만, 함수형 컴포넌트만을 사용하자 클래스 컴포넌트의 장점인state
,Life Cycle Method
을 사용하지 못함. 이를 해결하기 위해Hook
이 등장했음!!!!!
Hooks
는 리액트 v16.8에 새로 도입된 기능이다.
함수형 컴포넌트에 사용되는 몇 가지 기술을 Hook
이라고 한다.
리액트 훅은 함수형 컴포넌트가 클래스형 컴포넌트의 기능을 사용할 수 있도록 해주는 기능이다.
함수형 컴포넌트에서도 상태 관리를 할 수 있는 useState
,
그리고 렌더링 직후 작업을 설정하는 useEffect
등의 기능 등을 제공한다.
참조 :
https://devbirdfeet.tistory.com/52
https://codingbroker.tistory.com/23