728x90
300x250
SMALL
React에서 Containment 패턴은 컴포넌트 내부에 다른 컴포넌트를 포함하는 방식으로, 재사용성을 높이고 컴포넌트 간 결합도를 낮출 수 있는 방법이다. 일반적으로 리액트 컴포넌트 props에 기본적으로 들어있는 children 속성을 사용하여 구현한다. props.children 속성을 사용하면 해당 컴포넌트의 하위 컴포넌트가 모두 children으로 들어오게 된다.
앞에서 createElement()함수에 대해 배울 때 아래와 같은 형태로 호출 했는데
React.createElement(
type,
[props],
[...children]
)
세번째 파라미터에 children을 사용한다.
추천 예제
- 모달 컴포넌트
- 카드(Card) UI 컴포넌트
- 레이아웃 컴포넌트(예: 사이드바 + 컨텐츠 영역)
- 리스트 컴포넌트(예:<ul> 내부의 <li>요소들)
예제 코드
function Modal({ children }) {
return (
<div className="modal">
<div className="modal-content">{children}</div>
</div>
);
}
function App() {
return (
<Modal>
<h2>알림</h2>
<p>이것은 모달 안의 컨텐츠입니다.</p>
</Modal>
);
}
Modal 내부에 어떤 내용을 넣어도 모달이 재사용 가능해진다.
728x90
반응형
LIST
'Front-end > React' 카테고리의 다른 글
Containment + Specialization 패턴 활용법 (0) | 2025.02.15 |
---|---|
확장 가능한 컴포넌트 만들기 : Specialization 패턴 사용법 (0) | 2025.02.14 |
리액트 합성(Composition)이란? (0) | 2025.02.12 |
섭씨온도 화씨온도 표시하기 - 비 (0) | 2025.02.11 |
React에서 하위 컴포넌트 간 상태 공유하는 방법 (0) | 2025.02.09 |
댓글