TIL.231102 React

์•ˆ์€์ง€ยท2023๋…„ 11์›” 2์ผ
1
post-custom-banner

๐Ÿ“ŒComponent๋ž€? ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด UI๋ฅผ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ณ„์ ์ธ ์—ฌ๋Ÿฌ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ์กฐ๊ฐ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋…์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋Š” JavaScript ํ•จ์ˆ˜์™€ ์œ ์‚ฌํ•˜๋ฉฐ, โ€œpropsโ€๋ผ๊ณ  ํ•˜๋Š” ์ž„์˜์˜ ์ž…๋ ฅ์„ ๋ฐ›์€ ํ›„, ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ย 
โ˜‘๏ธํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ

// props๋ผ๋Š” ์ž…๋ ฅ์„ ๋ฐ›์Œ
// ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œํ˜„๋˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” React ์—˜๋ฆฌ๋จผ์ธ ๋ฅผ ๋ฐ˜ํ™˜(return)

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

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

โ–ถ๏ธโ–ถ๏ธโ–ถ๏ธComponent ๋ณด๋Š” ๋ฐฉ๋ฒ•
import ํ•˜๊ฑฐ๋‚˜, ๋˜๋Š” export default ๋ผ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋‚ด๊ฐ€ ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐ–์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ๊ณ , ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ์–ด๋–ค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ์˜ˆ์‹œ์— ์žˆ๋Š”๊ณณ์— ์ž‘์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  return ์„ ๊ธฐ์ค€์œผ๋กœ ์•„๋žซ๋ถ€๋ถ„์—์„œ๋Š” HTML(์ •ํ™•ํžˆ ๋งํ•˜๋ฉด JSX<์Ÿ‰์Šค>) ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์— ์ž‘์„ฑํ•œ html ์ฝ”๋“œ์™€ ๊ฐ’๋“ค์ด ํ™”๋ฉด์— ๋ณด์—ฌ์ง„๋‹ค.

post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€