함수형 컴포넌트 vs 클래스형 컴포넌트
클래스형 컴포넌트
- render 함수가 반드시 존재해야 한다.
- state 의 사용이 가능하다.
- lifecycle API의 사용이 가능하다.
함수형 컴포넌트
- 클래스형 컴포넌트에 비해 선언하기가 편하다.
- 메모리 자원을 클래스형 컴포넌트에 비해서 덜 차지한다.
- 빌드 후 배포시에 결과물의 크기가 작다.
클래스형 컴포넌트가 함수형 컴토넌트에 비해 가지는 단점
- 코드가 길고 복잡하다.
: constructor, this, binding 등 지켜야할 규칙이 존재한다.
- Logic의 재사용이 어렵다.
: 클래스형 컴포넌트에서는 High-Order Components(HOC)로 컴포넌트 자체를 재사용할 수는 있지만, 부분적인 DOM관련 처리나 API사용 및 state을 다루는 등의 logic에 있어서는 경우에 따라 같은 로직을 2개 이상의 Life Cycle method에 중복해서 넣어야하는 등 재사용에 제약이 따른다.
- 성능
: performance상 우의가 있다는 글들이 많다. 대략 6 ~ 45% 상승
[참고] https://eodevelop.tistory.com/68
[참고] https://codingbroker.tistory.com/23