๐Ÿ‘ฉ‍๐Ÿ’ป๊ณต๋ถ€/React

[React] ์ปดํฌ๋„ŒํŠธ(Component)

hhhhy 2023. 8. 26. 15:30

 React Component 

  • ์ปดํฌ๋„ŒํŠธ = ๋ธ”๋Ÿญ = ํ•จ์ˆ˜
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š” = html์„ return ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”
  • ์ปดํฌ๋„ŒํŠธ์˜ ๊ฐ€์žฅ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ!!
  • ์ปดํฌ๋„ŒํŠธ๋กœ UI๋ฅผ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ณ„์ ์ธ ์—ฌ๋Ÿฌ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ์กฐ๊ฐ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Œ
  • ์ปดํฌ๋„ŒํŠธ๋Š” JavaScript ํ•จ์ˆ˜์™€ ์œ ์‚ฌํ•จ
  • 'props'๋ผ๊ณ  ํ•˜๋Š” ์ž„์˜์˜ ์ž…๋ ฅ์„ ๋ฐ›์€ ํ›„, ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜(return)
  • return() ์•ˆ์— ์ตœ์ƒ์œ„ ํƒœ๊ทธ๋Š” ํ•˜๋‚˜๋งŒ ์žˆ์–ด์•ผ ํ•จ (๋นˆํƒœ๊ทธ <></> ๋„ ๊ฐ€๋Šฅ!)
  • ํ•จ์ˆ˜ํ˜• ์ปจํผ๋„ŒํŠธ๊ฐ€ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ ๋ณด๋‹ค ์‚ฌ์šฉ๋„๊ฐ€ ๋†’์Œ
  • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ ํ˜•์‹
// props๋ผ๋Š” ์ž…๋ ฅ์„ ๋ฐ›์Œ
// ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” React ์—˜๋ฆฌ๋จผ์ธ ๋ฅผ ๋ฐ˜ํ™˜(return)

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

// ํ›จ์”ฌ ์‰ฌ์šด ํ‘œํ˜„์„ ํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ฃ .
function App () {
	return <div>hello</div>
}

 

 component ๋ณด๋Š” ๋ฒ• 

 

 ๋ถ€๋ชจ-์ž์‹ ์ปดํฌ๋„ŒํŠธ 

  • ์ปดํฌ๋„ŒํŠธ๋Š” ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ’ˆ์„ ์ˆ˜ ์žˆ์Œ
  • ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ : ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ’ˆ๋Š” ์ปดํฌ๋„ŒํŠธ
  • ์ž์‹ ์ปดํฌ๋„ŒํŠธ : ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ํ’ˆ์–ด์ง€๋Š” ์ปดํฌ๋„ŒํŠธ
  • return ๋ถ€๋ถ„์„ '์ปดํฌ๋„ŒํŠธํ™”' ์‹œ์ผœ์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ฆ
  • return์ด ํ•œ ์ค„์ด๋ฉด () ์—†์–ด๋„ ๋˜์ง€๋งŒ, ๋ฉ€ํ‹ฐ๋ผ์ธ์ด๋ฉด () ํ•„์ˆ˜!
  • ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์ด ์ƒ๊ธธ ๊ฒฝ์šฐ์— ํ•„์š”ํ•จ!