ReactConf 2018에 발표된, 클래스 없이 state를 사용할 수 있는 새로운 기술이다.
기존 React는 클래스 기반 컴포넌트가 일반적이었다. state를 사용하려면 클래스 기반이어야 했기 때문이다.
하지만 Hook이 나오면서 React의 대세는 함수형 컴포넌트로 넘어왔다.
기존 함수형 컴포넌트에서는 이 생명주기를 다룰 수 없었다… 따라서 함수형 컴포넌트가 더 간결해도 사용되지 않았음.
React 16.8에서 Hooks가 업데이트 되며 함수형 컴포넌트에서도 생명주기를 다룰 수 있게 되었다. 안그래도 함수형이 더 간결하기 때문에 대세는 함수형으로 넘어왔음.
기존 class기반에서는 componentDidMount
, componentDidUpdate
,
componentWillUnmount
라는 api를 이용해 생명주기를 다뤘다.
하지만 Hook에서는 오직 userEffect
하나로 생명주기를 모두 다룬다!
화면에서 재사용 가능한, 변경되지 않는 로직을 컴포넌트로 만들고, 재사용 불가능한, 변경되곤 하는 다른 UI는 파라미터로 받아서 처리할 수 있다.
이때 변경되지 않는 컴포넌트부분을 HOC(Higher Order Component)라고 한다.