React 함수형 vs 클래스형 컴포넌트


(장재영) #1

안녕하세요 신입 개발자 입니다.

몇가지 궁금증 있어서 나눠봅니다

클래스기반 컴포넌트보다 함수형컴포넌트가 렌더링시 속도가 빠르다 라고 알고있습니다.
대략적으로는 라이프사이클메소드가 함수형컴포넌트에선 없으니까 정도로만 알고있는데 이에대한 구체적인 이유를 찾이 못하고 있습니다.
그 이유가 뭔지 같이 나눠볼 수 있을까요??


(이종은(Jong Lee)) #2

속도가 빠르다는 것은 어떤 상황이냐에 따라 다른 것으로 알고 있습니다.
state 유무, props이 달라지면 결과(render)가 무조건 달라니는지 여부등에 따라 어느 것이 더 빠르냐가 달라집니다.
state가 없고 입력(props)가 달라지면 무조건 출력(UI)가 달라질 경우 함수형 컴포넌트(stateless)를 사용하는게 적절합니다. 그런데 요즘은 hook을 통해서 함수형 컴포넌트도 state를 가질 수 있으니 얘기는 좀 달라졌어요. :slight_smile:

따러서 요즘 저는 새롭게 작성하는 모든 컴포넌트는 함수형 컴포넌트로 작성하고 state가 필요한 경우에 hook을 사용합니다. state 로직을 재사용가능하고 코드가 간결해져서 작성하기도 편하고 읽기도 쉬워진다는 점이 좋습니다.