[ TIL ] 2022-06-21

Gorae·2022년 6월 21일
0

(TIL) 일기 대신 TIL

목록 보기
5/5
post-thumbnail

Tips

CSS

React

합성(Composition)과 상속(Inheritance)

(공식 문서)

  • React는 강력한 합성 모델을 가지고 있으며, 상속 대신 합성을 사용하여 컴포넌트 간에 코드를 재사용하는 것이 좋다.
  • React에서 prop으로 전달할 수 있는 것에는 제한이 없다.
  • React는 컴포넌트 내에서 다른 컴포넌트를 참조할 수 있고, 모든 세부 단계에서 동일한 추상 컴포넌트를 사용할 수 있다.

합성의 예시

1) 어떤 자식 요소가 들어올 지 예상할 수 없을 때, children prop 을 통해 자식 컴포넌트를 그대로 전달하는 것

function FancyBorder(props) {
  return (
    <div className={'FancyBorder FancyBorder-' + props.color}>
      {props.children}
    </div>
  );
}

function WelcomeDialog() {
  return (
    <FancyBorder color="blue">
      <h1 className="Dialog-title">
        Welcome
      </h1>
      <p className="Dialog-message">
        Thank you for visiting our spacecraft!
      </p>
    </FancyBorder>
  );
}

2) 일반 컴포넌트를 props 를 통해 특수한 컴포넌트로 만드는 것

function Dialog(props) {
  return (
    <FancyBorder color="blue">
      <h1 className="Dialog-title">
        {props.title}
      </h1>
      <p className="Dialog-message">
        {props.message}
      </p>
    </FancyBorder>
  );
}

function WelcomeDialog() {
  return (
    <Dialog
      title="Welcome"
      message="Thank you for visiting our spacecraft!" />
  );
}
profile
좋은 개발자, 좋은 사람

0개의 댓글