Studying/React

리액트 공부하기 - children

creamymood 2025. 6. 3. 12:26

 

 

children은 React 컴포넌트에서 컴포넌트 태그 안에 들어가는 자식 요소들을 전달받을 수 있게 해주는 특별한 prop.

(* 고정 문법은 아니지만, 리액트에서 특별하게 처리하는 props이름으로써, 다른 데이터 변수명으로 사용하는건 삼가해야함* )

 

 

👩🏻‍💻기본 사용법

function MyBox({ children }) {
  return (
    <div style={{ border: '1px solid black', padding: '10px' }}>
      {children}
    </div>
  );
}

// 사용 예시
function App() {
  return (
    <MyBox>
      <p>Hello, world!</p>
      <button>Click me</button>
    </MyBox>
  );
}

 

  • MyBox 컴포넌트는 children prop을 받아 <div> 안에 넣습니다.
  • App에서 <MyBox> 태그 안에 들어간 <p>와 <button> 요소들이 children으로 전달됩니다.
  • → <p>Hello, world!</p> <button>Click me</button> 여기에 div 스타일을 적용하고 싶어서 저렇게 children 적용을 한 것

 

타입스크립트에서 사용법

type MyBoxProps = {
  children: React.ReactNode;
};

function MyBox({ children }: MyBoxProps) {
  return <div>{children}</div>;
}

React.ReactNode는 JSX로 넣을 수 있는 거의 모든 타입 (string, number, JSX, null, undefined 등)을 포함합니다.

 

children을 다른 위치나 조건에 따라 사용할 수도 있음

function FancyBox({ children }) {
  return (
    <div className="fancy">
      <header>📦 Fancy Box</header>
      <main>{children}</main>
      <footer>🧾 Footer</footer>
    </div>
  );
}

 

 

children이 없는 경우 기본값 지정도 가능

function GreetingBox({ children = "Hello there!" }) {
  return <div>{children}</div>;
}