props
: 컴포넌트 끼리의 정보 교환 방식
특징
1) 위에서 아래 방향(부모 → 자식 방향)으로만 흐른다. (단방향)
2) 반드시 읽기전용으로 취급하며 변경하지 않는다.
children
props와 유사하게 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전송할 수 있는 방법
여는 태그와 닫는 태그 사이에 작성된 값이 자식 컴포넌트의 children이라는 값으로 전달된다.
import React from "react";
const App = () => {
return <User>안녕하세요!</User>;
};
function User(props) {
return <div>유저님 {props.children}</div>;
}
export default App;
children의 용도
1) 레이아웃 컴포넌트를 만들 때 주로 사용
import React from "react";
const App = () => {
return (
<Layout>
<div>레이아웃 내부에 들어갈 요소들</div>
</Layout>
);
};
function Layout(props) {
return (
<main>
<header>header입니다.</header>
{props.children}
<footer>footer입니다.</footer>
</main>
);
}
export default App;
구조분해할당 활용하기
import React from "react";
const App = () => {
return (
<Layout>
<div>레이아웃 내부에 들어갈 요소들</div>
</Layout>
);
};
function Layout({ children }) {
return (
<main>
<header>header입니다.</header>
{children}
<footer>footer입니다.</footer>
</main>
);
}
export default App;
위는 같은 결과다!
Layout의 파라미터로 props가 전달됨
따라서 {children} = props 와 같은 의미
props 는 key-value 쌍이므로 현재 children이라는 키의 값인 <div> ~ 내용이 children에 할당된다.
기본값 설정
그런데 부모 컴포넌트에서 아무값도 보내주지 않았을수도 있다. 그를 위해 기본값을 설정해둘 수 있다.
function Layout({ children = "default" }) {
return (
<main>
<header>header입니다.</header>
{children}
<footer>footer입니다.</footer>
</main>
);
}
'React' 카테고리의 다른 글
[React] 리액트의 개념과 성능 최적화 팁 (0) | 2024.08.14 |
---|---|
[React] Rendering과 Virtual DOM (0) | 2024.08.08 |
[React] state (0) | 2024.08.08 |
React 프로젝트 생성/구조 (0) | 2024.08.08 |
SPA (Single Page Application) (0) | 2024.08.08 |