November 25, 2019
React에서 컴포넌트를 선언하는 방식은 함수형, 클래스형 두 가지입니다. 컴포넌트 내에서 Life Cycle과 State를 사용하기 위해선 반드시 클래스형을 사용해야 했고 사용자들은 함수형과 클래스형을 혼용해서 사용해야 했습니다. 하지만 React 16.8버전부터 Hook이라는 개념이 나오면서 클래스형에서만 할 수 있었던 Life Cycle, State등을 함수형에서도 사용할 수 있게 되었습니다. 이는 함수형 컴포넌트의 단점을 보완하는 중요한 역할을 하게 되었습니다.
state는 생성자를 통해서만 초기화가 가능합니다. 따라서 생성자를 사용하는 클래스 컴포넌트에서만 state를 사용할 수 있습니다.
constructor(props){
super(props);
}
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
React 공식문서에도 클래스 컴포넌트에만 존재하는 기능들을 Hooks로 옮길 예정이라고 합니다. 함수형 컴포넌트의 사용을 지향해야겠습니다.