Props

Props


Props๋ž€ react์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ธฐ๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
props.๋ณ€์ˆ˜๋ช… == {๋ณ€์ˆ˜๋ช…}

import React from "react";

// props.name == {name}

function FoodList({name}){
    return (
      <div>{name} ๋จน๊ณ ์‹ถ๋‹ค</div>
    )
}

const list = [
  { key : 1,
    name: "์น˜ํ‚จ" },
  { key : 2,
    name: "ํ”ผ์ž" },
  { key : 3,
    name: "๊ณฑ์ฐฝ" },
  { key : 4,
    name: "๋–ก๋ณถ์ด" },
];

function App() {
  return (
    <div>
        Hello World!
        {list.map(food => {
          return <FoodList key={food.key} name={food.name} />
        })}
    </div>
  );
}

Array.map()

javascript์—์„œ๋Š” array์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์žˆ๋Š” map์ด๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ์–ด๋ ˆ์ด ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋œ๋‹ค.

# map์‚ฌ์šฉ์‹œ ๊ณ ์œ ์˜ key๊ฐ’ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค. ์ด์œ ๋Š” ๊ณ ์œ ์˜ key๊ฐ’์„ ์ •ํ•ด์ค˜์•ผํ•˜๊ธฐ ๋–„๋ฌธ์ด๋‹ค.


function App() {
  return (
    <div>
        Hello World!
        {list.map((food , index) => {
          return <FoodList key={index} name={food.name} />
        })}
    </div>
  );
}

์œ„์— {food.key}๊ฐ€ ์•„๋‹Œ index ๊ฐ’์„ ์ฃผ์–ด key๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

prop-Tpyes


Props์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋Š” npm ๋ชจ๋‘˜์ด๋‹ค.

npm install prop-types
import React from "react";
import PropTypes from "prop-types";

function Movie({id, year, title, summary, poster ,genres}) {
  return (
   //...
  );
}

Movie.prototype = {
  id: PropTypes.number.isRequired,
  year: PropTypes.number.isRequired,
  title: PropTypes.string.isRequired,
  summary: PropTypes.string.isRequired,
  poster: PropTypes.string.isRequired,
  genres: PropTypes.arrayOf(PropTypes.string).isRequired
};

export default Movie;

number์™€ String , Array ๋“ฑ ํ•ด๋‹น ํ”„๋กญ์˜ ํƒ€์ž…์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Categories:

Updated:

Leave a comment