값 전달(props)

컴포넌트에 「주문」을 전달해 모양과 동작을 바꾼다

핵심 포인트

  • props는 컴포넌트에 전달하는 "주문서"입니다. HTML 속성과 같은 방식으로 씁니다
  • 받는 쪽은 함수의 인수로 받습니다: function Greeting({ name }) { ... }
  • 받은 props는 고치지 않습니다. 바꾸고 싶을 때는 전달하는 쪽에서 바꿉니다

직접 해 보기

function Greeting({ name }: { name: string }) {
  return <p>안녕하세요, {name} 님</p>
}

export default function App() {
  return (
    <div style={{ padding: 16 }}>
      <Greeting name="김민준" />
      <Greeting name="이서연" />
    </div>
  )
}
  1. 세 번째 Greeting을 추가해 보세요
  2. Greeting에 age(나이)도 전달해서 "N살"이라고 표시해 보세요 (힌트: { name, age })
  3. name을 깜빡하고 전달하지 않으면 어떻게 되는지 확인해 보세요

자주 하는 실수

컴포넌트 이름은 대문자로 시작
<greeting>처럼 소문자로 쓰면 HTML 태그로 취급됩니다. 직접 만든 컴포넌트는 <Greeting>처럼 대문자로 시작합니다.
문자열이 아닌 값은 { }로 감싸기
name="김민준"은 문자열입니다. 숫자나 변수를 전달할 때는 age={30}처럼 { }로 감쌉니다.