<star />

Props ๋ณธ๋ฌธ

React ๐Ÿ“

Props

๋ณ„๊น… 2022. 11. 23. 02:08
728x90

๋‹ค๋“ค ์•Œ๋‹ค์‹ถ์ด ๋ฆฌ์•กํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์ด๋‹ค.

๊ทผ๋ฐ ๋‚˜๋Š” ๋นก๋Œ€๊ฐ€๋ฆฌ ๊ทธ๋Ÿฐ์ง€ Props์˜ ๊ฐœ๋…์„ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

์ปดํฌ๋„ŒํŠธ๋“ค์ด ๋ชจ์—ฌ์„œ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ๋˜ ์ด๋Ÿฌํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๋ชจ์—ฌ์„œ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž…๋ ฅ์€ Props๊ณ , ์ถœ๋ ฅ์€ ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ๋‹ค.

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์—ญํ• ์€ ์–ด๋– ํ•œ ์†์„ฑ๋“ค์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„์„œ ๊ทธ์— ๋งž๋Š” ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฆฌํ„ดํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ์ปดํฌ๋„ŒํŠธ๋Š” ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š”๋Œ€๋กœ Props(์†์„ฑ) ๋ฅผ ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ์†์„ฑ์— ๋งž์ถฐ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚  ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ž„.

์ด๊ฒƒ์€ ๋งˆ์น˜ ๋ถ•์–ด๋นต์„ ๊ตฝ๋Š” ๊ณผ์ •๊ณผ ๋น„์Šทํ•˜๋ฌด๋‹ˆ๋‹ค.

 

๊ฒจ์šธ์ด๋‹ˆ๊นŒ ๋ถ•์–ด๋นต ๋จน๊ณ  ์‹ถ๋‹ค. ํŒฅ๋ถ•? ์Šˆ๋ถ•? ๋Œ“๊ธ€๋กœ ์˜๊ฒฌ ์ข€.

 

๋ถ•์–ด๋นต ํŒŒ๋Š” ๊ณณ ๊ฐ€ ๋ณด๋ฉด ๋ถ•์–ด๋นต์„ ๋งŒ๋“œ๋Š” ๊ธฐ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ•์–ด๋นต ๊ธฐ๊ณ„๋Š” ๋ถ•์–ด ๋ชจ์–‘์˜ ํ‹€์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๊ณ , ๊ฑฐ๊ธฐ์— ๋ฐ˜์ฃฝ์„ ๋ถ€์–ด์„œ ๋ถ•์–ด๋นต์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

 

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ = ๋ถ•์–ด๋นต ํ‹€

๊ฐ ๋ถ•์–ด๋นต ์นœ๊ตฌ๋“ค = ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ

๋ถ•์–ด๋นต์— ๋“ค์–ด๊ฐ€๋Š” ์žฌ๋ฃŒ๋“ค = Props

 

์ด ๊ณผ์ •์€ ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์—์„œ ๋‚˜์˜ค๋Š” ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค์˜ ๊ฐœ๋…๊ณผ ๋น„์Šทํ•˜์ง€์š”.

 

๋ถ•์–ด๋นต ํ‹€๋งŒ ์žˆ์œผ๋ฉด ๊ณ„์†ํ•ด์„œ ๋ถ•์–ด๋นต์„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž„.

 

1. Props์˜ ๊ฐœ๋…

  • ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ˆˆ์— ๋ณด์ด๋Š” ๊ธ€์ž๋‚˜ ์ƒ‰๊น” ๋“ฑ์˜ ์†์„ฑ์„ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์† ์žฌ๋ฃŒ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.
  • ์ปดํฌ๋„ŒํŠธ์—์„œ ์ „๋‹ฌํ•  ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์ž„.

2. Props์˜ ํŠน์ง•

  • ์ฝ๊ธฐ ์ „์šฉ (Read-Only)
  • ์ˆœ์ˆ˜ํ•จ์ˆ˜ (pure function)
    ๋ชจ๋“  ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” Props ๋ฅผ ์ง์ ‘ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๊ณ , ๊ฐ™์€ Props ์— ๋Œ€ํ•ด์„œ๋Š” ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ ์ค˜๋ผ.

3. Props ์‚ฌ์šฉ๋ฒ•

  • ์ปดํฌ๋„ŒํŠธ์— ํ‚ค-๊ฐ’ ์Œ ํ˜•ํƒœ๋กœ ๋„ฃ์Œ.
function App(props) {
  return (
      <Profile
          name="ํ"
          introduction="์•ˆ๋…•ํ•˜์„ธ์š”, ๋”๋ณด์ด์ฆˆ ํ์ž…๋‹ˆ๋‹ค."
          viewCount={19981105}
      />
  );
}

 

App ์ปดํฌ๋„ŒํŠธ  > Profile ์ปดํฌ๋„ŒํŠธ > name, introduction, viewCount ๋ผ๋Š” ์„ธ๊ฐ€์ง€ ์†์„ฑ์ด ์žˆ์Œ > ์†์„ฑ์˜ ๊ฐ’์ด ๋ชจ๋‘ Profile ์ปดํฌ๋„ŒํŠธ์— props ๋กœ ์ „๋‹ฌ๋จ

 

{
	name: "์ง€์ฐฝ๋ฏผ",
    	introduction: "์•ˆ๋…•ํ•˜์„ธ์š”, ๋”๋ณด์ด์ฆˆ ํ์ž…๋‹ˆ๋‹ค.",
    	viewCount: 19981105
}

 

์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด์กฐ๊ฑด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

props์— ๊ฐ’์„ ๋„ฃ์„ ๋•Œ๋„ ๋ฌธ์ž์—ด ์ด์™ธ์— ์ •์ˆ˜, ๋ณ€์ˆ˜, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ๋“ฑ์ด ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ์—๋Š” ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์‹ธ ์ฃผ์–ด์•ผ ํ•จ.

๋ฌผ๋ก ~ ๋ฌธ์ž์—ด์„ ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ๋„ ์ƒ๊ด€ ์—†์Œ!

 

function App(props) {
    return(
    	<Layout
        width={2560}
            height={1440}
            header={
            	<header title="๋ฆฌ์•กํŠธ ์งฑ์ด ๋  ๊ฑฐ์˜ˆ์š”." />
            }
            footer={
            	<Footer />
            }
        />
    )
}

 

์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด props ์˜ ๊ฐ’์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ.

 

 

728x90

'React ๐Ÿ“' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง  (0) 2022.11.28
์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง  (0) 2022.11.26
State์™€ ์ƒ๋ช…์ฃผ๊ธฐ  (0) 2022.11.24
Hook  (0) 2022.11.23
์ปดํฌ๋„ŒํŠธ  (0) 2022.11.23
Comments