[React] Card 컴포넌트 제작
- 카드 컴포넌트는 하위 컴포넌트를 감싸서 카드 형태를 보여주는 컴포넌트
- 두 가지 합성 방법을 모두 사용하여 구현
- children을 사용한 부분이 containment 이고 title과 background를 사용한 부분이 specialization이라고 할 수 있음
- 카드 컴포넌트는 범용적으로 재사용이 가능한 컴포넌트
- 프로필 카드 컴포넌트는 카드 컴포넌트를 사용하여 타이틀에 이름을 넣고 배경 색상을 녹색으로 설정
- children으로는 간단한 소개 글을 넣었음
- 카드 컴포넌트가 사용자의 프로필을 나타내는 프로필 카드 컴포넌트가 됨
- 배경색이나 타이틀 그리고 내부에 들어가는 컨텐츠들을 바꿔 보면서 다양한 카드를 만들어보는 것이 좋음
복잡한 컴포넌트를 쪼개서 여러 개의 컴포넌트로 만들고, 만든 컴포넌트들을 조합해서 새로운 컴포넌트를 만들자
📱Composition
- 여러 개의 컴포넌트를 합쳐서 새로운 컴포넌트를 만드는 것
- 구성의 의미보다는 합성의 의미에 더 가까움
- 여러 개의 컴포넌트들을 어떻게 조합할 건가에 대한 생각이 필요
📱Containment
- 하위 컴포넌트를 포함하는 형태의 합성 방법
- sidebar나 Dialog 같은 Box 형태의 컴포넌트는 자신의 하위 컴포넌트를 미리 알 수 없음
- 사용하는 방법은 React 컴포넌트의 props에 기본적으로 들어있는 children 속성 사용
function FancyBorder(props) {
return (
<div className={'FancyBorder FancyBorder-' + props.color}>
{props.children}
</div>
);
}
- chlidren이라는 props은 개발자가 직접 넣어주는 것이 아니라 React에서 기본적으로 제공해주는 것
- 여러 개의 하위 컴포넌트를 가질 수 있음
- React에서는 하위 컴포넌트를 props.children으로 하나로 모아서 제공해 줌
- 여러 개의 children 집합이 필요할 때는 별도로 props를 정의해서 각각 원하는 컴포넌트를 정의하면 됨
📱Specialization
- 범용적인 개념을 구별이 되게 구체화 하는 것
- 기존의 객체지향 언어에서는 상속을 사용하여 Specialization을 구현
- React에서는 컴포지션을 사용하여 Spacialization을 구현
- 범용적으로 쓸 수 있는 컴포넌트를 만들어 놓고 특수화 시켜서 컴포넌트를 사용하는 컴포지션 방법
📱Inheritance
- 상속이라는 뜻을 가지고 있음
- 프로그래밍에서의 상속은 객체지향 프로그래밍에서 나온 개념
- 부모 클래스를 상속받아서 새로운 자식 클래스를 만든다는 개념으로 자식 클래스는 부모 클래스가 가진 변수나 함수 등의 속성을 모두 갖게 됨
- React는 다른 컴포넌트로부터 상속을 받아서 새로운 컴포넌트를 만드는 것을 고려할 수 있음
공부한 자료
https://www.inflearn.com/course/%EC%B2%98%EC%9D%8C-%EB%A7%8C%EB%82%9C-%EB%A6%AC%EC%95%A1%ED%8A% B8/dashboard
[지금 무료] 처음 만난 리액트(React) 강의 | Inje Lee (소플) - 인프런
Inje Lee (소플) | 자바스크립트와 CSS 기초 문법과 함께 리액트의 기초를 탄탄하게 다질 수 있습니다., 깔끔한 강의자료, 꼼꼼한 설명으로쉽게 배우는 리액트 강의입니다. 👨🏫 리액트의 세계로
www.inflearn.com
'Front > React.js' 카테고리의 다른 글
[React] 리액트 스타일링 (Styling) (0) | 2024.08.19 |
---|---|
[React] 리액트 테마 변경 기능 (Context) (0) | 2024.08.18 |
[React] 섭씨 온도와 화씨 온도 표시하기 (Lifting State Up) (0) | 2024.08.17 |
[React] 사용자 정보 입력 받기 (Forms) (0) | 2024.08.15 |
[React] 출석부 출력 (List and Keys) (0) | 2024.08.14 |