[React] props와 합성
Udemy Props / 합성
날짜 생성자
const expenseDate = new Date(2023, 6, 13);
return <div>{expenseDate.toISOString()}</div>
props
사용자 지정 컴포넌트의 속성
// app.js
import ExpenseItem from "./components/ExpenseItem";
function App() {
const expenses = [
{
title: "New Desk (Wooden)",
amount: 204.09,
date: new Date(2023, 6, 13),
},
{
title: "Car Insurance",
amount: 294.67,
date: new Date(2023, 6, 13),
},
{
title: "Pizza",
amount: 14.65,
date: new Date(2023, 6, 13),
},
];
return (
<div>
<h2>Let's get started!</h2>
<ExpenseItem
title={expenses[0].title}
amount={expenses[0].amount}
date={expenses[0].date}
/>
<ExpenseItem
title={expenses[1].title}
amount={expenses[1].amount}
date={expenses[1].date}
/>
<ExpenseItem
title={expenses[2].title}
amount={expenses[2].amount}
date={expenses[2].date}
/>
</div>
);
}
export default App;
//ExpenseItem.js
import "./ExpenseItem.css";
function ExpenseItem(props) {
return (
<div className="expense-item">
<div>{props.date.toISOString()}</div>
<h2>{props.title}</h2>
<div className="expense-item__description">
<div className="expense-item__price">{props.amount}</div>
</div>
</div>
);
}
export default ExpenseItem;
Card.js
보통 박스 그림자나 효과를 줄 때, Card라는 이름을 사용한다.
특정 효과를 가지는 컴포넌트를 만들어서 여러 컴포넌트에 사용하는 것이 합성하는 것이다.
props.children의 값은 사용자 지정 컴포넌트에 있는 컨텐츠를 의미한다.
function 과 화살표 함수
function Card(){} 대신,
const Card = () => {} 를 사용할 수 있다.
따로 차이점이나 혜택이 존재하는 것은 아니다.