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의 값은 사용자 지정 컴포넌트에 있는 컨텐츠를 의미한다.

image

function 과 화살표 함수

function Card(){} 대신,

const Card = () => {} 를 사용할 수 있다.

따로 차이점이나 혜택이 존재하는 것은 아니다.