React

[React] Props를 통해 컴포넌트에게 값 전달하기

수박쓰123 2023. 3. 30. 12:58

1. Props(프로퍼티)란?

- 상위 컴포넌트가 하위 컴포넌트에게 값을 전달할 때 사용

- 프로퍼티는 수정할 수 없다는 특징이 있음(읽기 전용 데이터)

- props에 문자열을 전달할 때는 큰따옴표(" ")를, 문자열 외의 값을 전달할 때는 중괄호({ })를 사용

 

 

2. Props(프로퍼티) 사용하기

 

1. App.js에서 Test.js에 값 전달

2. App.js에서 출력할 글 작성

3. index.js에서 출력

 

App.js

export default function App() {
  return (
    <div>
      <Test 이름="soobin" mbti="INTP" 나이={18} />
    </div>
  );
}

 

Test.js

export default function Test(props) {
  return (
    <div>
      <h1>Hello, This is {props.이름}</h1>
      <p>My MBTI is {props.mbti}</p>
      <p>My age is {props.나이}</p>
    </div>
  );
}

 

index.js

import { createRoot } from "react-dom/client";
const rootElement = document.getElementById("root");
const root = createRoot(rootElement);

root.render(
  <App />
);

Hello, This is soobin

My MBTI is INTP

My age is 18

 

3. 조건부 렌더링

- 특정 조건에 따라 각각 다른 값을 출력하는 것을 의미함

 

조건부 렌더링을 사용하여 아까의 코드에 나이에 따라 성인인지 아닌지를 출력하는 코드를 추가해 보겠다.

export default function Test(props) {
  return (
    <div>
      <h1>Hello, This is {props.이름}</h1>
      <p>My MBTI is {props.성격}</p>
      <p>My age is {props.나이}</p>
      {props.age >= 20 && <span>성인</span>}
    </div>
  );
}

{props.age >= 20 && <span> 성인 </span>} 를 추가하여 입력된 나이가 20이 넘었다면 성인을 출력하고 넘지 않는다면 출력하지 않는다. 

입력 이름="soobin" mbti="INTP" 나이={18} 이름="junghwa" mbti="ISTP" 나이={48}
출력 Hello, This is soobin
My MBTI is INTP
My age is 18
Hello, This is junghwa
My MBTI is ISTP
My age is 48
성인

 

'React' 카테고리의 다른 글

[React] 리액트의 여러 기능들  (0) 2023.05.11
[React] onChange  (0) 2023.04.20
[React] state와 onClick  (0) 2023.04.13
[React] map  (0) 2023.04.06
[React] React 1일차  (0) 2023.03.23