๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

React

[ React ] React Props ์•Œ์•„๋ณด๊ธฐ.


React๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค ๋˜๋Š” React์˜ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋น„์Šทํ•ด๋ณด์—ฌ์„œ ์–ด๋ ต๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋Š” React Props์™€ React State์— ๋Œ€ํ•ด ์ฐจ์ด์ ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ React์˜ Props๋ฅผ ๋จผ์ € ์ดํ•ดํ•ด์•ผ state์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ๋”์šฑ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์•„,  props์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค.

 

props์™€ state๋Š” React์˜ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์™€ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ชจ๋‘ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

 

 

Props

React์—์„œ props๋ž€ "properties"์˜ ์ค„์ž„๋ง๋กœ, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” props๋ผ๋Š” ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ „๋‹ฌ๋˜๋ฉฐ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋Š” ์ด props ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ•˜๋‚˜์˜ props(์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ) ๊ฐ์ฒด ์ธ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์˜ˆ์ œ๋ฅผ ํ†ตํ•ด props์— ๋Œ€ํ•ด์„œ ์„ค๋ช…์„ ํ•˜์ž๋ฉด,

 

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

 

์•„๋ž˜์™€ ๊ฐ™์ด Welcome์ด๋ผ๋Š” ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, Welcome์˜ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ ์˜† ์ธ์ž(props)๊ฐ€ Welcome ์ปดํฌ๋„ŒํŠธ์˜ props(์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ)๊ฐ์ฒด ์ธ์ž์ด๊ณ , Welcome ์ปดํฌ๋„ŒํŠธ๋Š” ์ธ์ž๋กœ ์ „๋‹ฌ๋ฐ›์€ props ๊ฐ์ฒด๋ฅผ React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

Welcome ์ปดํฌ๋„ŒํŠธ๋Š” props๋ฅผ ์ „๋‹ฌ๋ฐ›๊ณ , React ์—˜๋ฆฌ๋จผํŠธ (h1 ํ˜•ํƒœ)๋กœ "Hello, {props.name}"์„ ์ถœ๋ ฅํ•˜๋Š” ํ˜•ํƒœ์ด๋‹ค.

๊ทธ๋ž˜์„œ Welcome ์ปดํฌ๋„ŒํŠธ๋Š” props๋กœ ๋ฐ›์€ ๊ฐ์ฒด์˜ name์ด๋ผ๋Š” ํ‚ค์˜ ๊ฐ’์„ ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ์•ˆ์—์„œ ๋ Œ๋”๋ง ํ•œ๋‹ค.

 

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

function App() {
  return (
    <div>
      <Welcome name="Sara" />
      <Welcome name="Cahal" />
      <Welcome name="Edite" />
    </div>
  );
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

 

์ด ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ํ™”๋ฉด์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋ Œ๋”๋งํ•œ๋‹ค.

 

 

"Hello, Sara"

"Hello, Cahal"

"Hello, Edite"

 

 

์ด๋ ‡๊ฒŒ React์—์„œ Props๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ฉฐ, React์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์œ ์—ฐํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ์— ํ•„์ˆ˜์ ์ธ ์š”์†Œ์ด๋‹ค.

 

 

 

 

 


 

๐ŸŒธ ์ถœ์ฒ˜ ๐ŸŒธ

 

Components์™€ Props - react.org