Front-end/React
[React] 합성(Composition)과 상속(Inheritance)
늘이
2023. 5. 14. 23:42
1. 합성(Composition)
- 여러 개의 컴포넌트를 합쳐서 새로운 컴포넌트를 만드는 것
- 다양하고 복잡한 컴포넌트를 효율적으로 개발할 수 있음
2. 합성 기법
1) Containment
- 하위 컴포넌트를 포함하는 형태의 합성 방법
- 리액트 컴포넌트의 props에 기본적으로 들어있는 children 속성을 사용
- 여러 개의 children 집합이 필요한 경우 별도로 props를 각각 정의해서 사용
2) Specialization
- 범용적인 개념을 구별되게 구체화하는 것
- 범용적으로 쓸 수 있는 컴포넌트를 만들어 놓고 이를 구체화시켜서 컴포넌트를 사용하는 합성 방법
3) Containment와 Specialization
- props.children을 통해 하위 컴포넌트를 포함시키기(Containment)
- 별도의 props.chilren을 선언하여 구체화시키기(Specialization)
3. 상속(Inheritance)
- 다른 컴포넌트로부터 상속받아서 새로운 컴포넌트를 만드는 것
- 상속을 사용하여 컴포넌트를 만드는 것을 추천할 만한 사용 사례를 찾지 못함
- 리액트에서는 상속보다는 합성을 사용하는 것이 좋음