๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ ๋ฆฌ์กํธ ์์ ๋๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํ ๊ฒ์ด๋ค
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์ ์ ๋ฌ๋๋ค.
'nextjs,tailwindcss,vercel' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ๋น์์์ ๋๋ฉ์ธ ์ฌ์ vercel์ ์ ์ฉํ๊ธฐ (1) | 2024.06.02 |
---|---|
JSX expressions must have one parent element. NextJS ์ค๋ฅ ํด๊ฒฐ (0) | 2024.06.01 |
๋ฆฌ์กํธ / Next.js ๊ธฐ์ด - ๋ฆฌ์กํธ ํ๋ก์ ํธ ์์ํ๊ธฐ (0) | 2024.05.21 |
ํ์ ์คํฌ๋ฆฝํธ ๊ธฐ์ด - ํจ์ , ํจ์ ํ์ (0) | 2024.05.21 |
ํ์ ์คํฌ๋ฆฝํธ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด , any (0) | 2024.05.21 |