nextjs,tailwindcss,vercel

[ ๋ฆฌ์•กํŠธ ] ์ปดํฌ๋„ŒํŠธ์™€ ์š”์†Œ , props

์ฃผ์˜ ๐Ÿฑ 2024. 5. 21. 01:41
728x90
๋ฐ˜์‘ํ˜•

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ž€ ๋ฆฌ์•กํŠธ ์š”์†Œ ๋˜๋Š” ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์กฐํ•ฉํ•œ ๊ฒƒ์ด๋‹ค

JSX๋กœ ์ž‘์„ฑ๋œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ผ์šฐ์ €์—์„œ ํ‘œ์‹œ๋  ๋•Œ๊นŒ์ง€์˜ ํ๋ฆ„์„ ์ž ์‹œ ์„ค๋ช…ํ•˜์ž๋ฉด, 

๋จผ์ € ์›นํŒฉ ( ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋นŒ๋“œ ๋„๊ตฌ, next js ์—์„œ๋Š” SWC ) ์— ์˜ํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด์„์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. 

์ด๋•Œ ์ปดํฌ๋„ŒํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด๋กœ ํ‘œํ˜„๋œ๋‹ค. ๋ณ€ํ™˜๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด๋‹ค

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์—์„œ ํ”„๋ผ์šฐ์ €์˜ ํ‘œ์‹œ ๋‚ด์šฉ์„ ๋ฐ”๊ฟ”์“ธ๋•Œ๋Š” DOM์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๋ฉฐ, ๋จผ์ € ๊ฐ€์ƒ DOM์„ ๊ตฌํ˜„ํ•œ๋‹ค. 

๊ฐ€์ƒ DOM๊ณผ ๋น„๊ตํ•ด ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„๋งŒ ์‹ค์ œ DOM ์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. 

 

๋ฆฌ์•กํŠธ์š”์†Œ

 

class, onchange ๋Œ€์‹  className, onChange ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (์นด๋ฉœ์ผ€์ด์Šค)

 

 

์ปดํฌ๋„ŒํŠธ

 

๋ฆฌ์•กํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ๋Š” UI์˜ ๋ถ€ํ’ˆ ๋‹จ์œ„๋กœ์จ, ํ˜•ํƒœ์™€ ์ž‘๋™์„ ์„ค์ •ํ•œ๋‹ค. 

์ปดํฌ๋„ŒํŠธ๋Š” ํ•จ์ˆ˜(์ฃผ๋กœ ์“ฐ์ž„)๋‚˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค. 

์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์Šค์นผ ์ผ€์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

 

์ปดํฌ๋„ŒํŠธ์— ์™ธ๋ถ€์—์„œ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋ ค๋ฉด props ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.props๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ํ•จ์ˆ˜์˜ ์ธ์ˆ˜ ๊ฐ์ฒด์— ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. 

์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ธก์€ ์†์„ฑ์— ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. 

props๋Š” ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ์ž์‹์—๊ฒŒ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. props์˜ ๋‚ด์šฉ์„ ์ž์‹์ด ์น˜ํ™˜ํ•  ์ˆ˜ ์—†๋‹ค(์—๋Ÿฌ ๋ฐœ์ƒ)

๋งŒ์•ฝ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ํ‘œ์‹œ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํ›…์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

const Container = (props: { title:string; children: React.ReactElement }) => {
	const { title, children } = props
    
    return ( 
    <div style ={{background : black}}</div>
    
    <div>{children}</div>
    </div>
    
    const Parent = () => {
    
    return (
    <Container>
    <p>Container๋Š” ๋‹ค๋ฅธ ์š”์†Œ๋ฅผ ๊ฐ์‹ธ์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์ด ๋ฐฐ๊ฒฝ์ƒ‰์œผ๋กœ ์น ํ•ด์ง„๋‹ค. </p>
    </Container>
    
    
    )
    }
    
  export defaclt Parent

 

props์•ˆ์— children์— ์ „๋‹ฌ๋œ๋‹ค. 

 

 

๋ฐ˜์‘ํ˜•