서론
오늘은 리액트를 배운 사람이라면 한 번쯤은 묻게 되는 기본적인 내용에 관해서 정리해보려고 합니다. 지금은 함수형 컴포넌트와 Hooks로 리액트 컴포넌트를 작성하는 게 일반적이지만, Hook가 정식으로 추가되기 전인 React 버전 16.8 (2019년 2월 출시) 이전에는 클래스형 컴포넌트를 작성하는 것이 일반적이었습니다.
또 오픈소스 프로젝트 중 여전히 클래스형 컴포넌트로 작성된 경우가 더러 있습니다. 따라서 오늘은 그 둘의 차이점에 대해서 알아보고, 리액트에서 왜 Hooks로 작성하는 것을 권장하는 지 알아보도록 하겠습니다.
이 차이는 클래스와 함수의 차이에서 비롯됩니다. 함수형에서는 this가 가리키는 undefined인 반면, 클래스형에서는 해당 객체를 가리킵니다. 문제는 이 this가 컴포넌트 렌더링 시에 계속 새롭게 바인딩되면서 this.props 등 this로 가리키는 값이 달라질 수 있습니다. 반면 함수형 컴포넌트에선 호출되는 시점의 값이 잘 전달되는 것을 알 수 있습니다. 이는 클로저에서 함수의 상위 스코프의 변수 값에 대한 참조 값이 유지되는 것과 같은 원리입니다. 이에 관한 자세한 설명은 아래 아티클을 참조해주시길 바랍니다.
참조한 사이트
반응형
'Framework > React & RN' 카테고리의 다른 글
[Expo 44] 최신 Expo 환경에서 구글 로그인 구현하는 방법 (0) | 2022.04.01 |
---|---|
React Native/Typescript 환경에서 Styled-component를 사용하는 방법 (0) | 2022.04.01 |
React Native 환경에서 svg 파일 불러오는 방법 (0) | 2022.04.01 |
ReactNative 개발, 어떻게 시작하면 좋을까? (2) | 2021.12.29 |
[FE] 프론트엔드에서의 상태관리란 무엇인가? (1) 등장배경과 정의 (0) | 2021.11.06 |
댓글