ํ๋ก์ ํธ๋ฅผ ์งํํ ๋, props์ ๋ฐ๋ผ ์คํ์ผ์ ๋ค๋ฅด๊ฒ ์ ์ฉํ๊ณ ์ถ์๋ฐ ์ ๋๋ก ์คํ์ผ ์ ์ฉ์ด ์๋ผ์ tailwindcss ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ค๊ฐ ๋ฐ๊ฒฌํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ค.
tailwind๊ฐ ํด๋์ค๋ช ์ ์คํ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ ์ค ๊ฐ์ฅ ์ค์ํ ์ ์ ๋์ด์ง์ง ์๋ ์์ ํ ๋ฌธ์์ด๋ก ์กด์ฌํ๋ ํด๋์ค๋ง ์ฐพ๋๋ค๋ ๊ฒ์ด๋ค.
์ฆ, ๋ฌธ์์ด interpolation์ด๋ ๋ถ๋ถ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ๋๋ก ๋์ํ์ง ์๋๋ค.
์กฐ๊ฑด๋ถ๋ก ์คํ์ผ ์ง์ ํ๊ธฐ
๊ฐ๋ฐ์๋๊ตฌ๋ก element๋ฅผ ํ์ธํด๋ณด๋ฉด ํด๋์ค๋ช ์ ์ ์์ ์ผ๋ก ๋ค์ด๊ฐ๋ค.
ํ์ง๋ง tailwind์์ ํด๋น ํด๋์ค๋ช ์ ์คํ์ผ๋ก ๋ณํํด์ฃผ์ง ์๋๋ค.
โ ๋์ํ์ง ์๋ ๊ฒฝ์ฐ
<div class="text-{{ error ? 'red' : 'green' }}-600"></div>
๋์ด์ง์ง ์๋ ์์ ํ ๋ฌธ์์ด๋ก ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ tailwind๋ ํด๋น ํด๋์ค๋ฅผ ์์ฑํ์ง ์๋๋ค.
โ ๋์ํ๋ ๊ฒฝ์ฐ
<div class="{{ error ? 'text-red-600' : 'text-green-600' }}"></div>
'text-red-600'
, 'text-green-600'
๊ณผ ๊ฐ์ด ์์ ํ ๋ฌธ์์ด๋ก ์กด์ฌํด์ผ ๋์ํ๋ค.
props๋ก ํด๋์ค๋ช ์ถ๊ฐํ๊ธฐ
โ ๋์ํ์ง ์๋ ๊ฒฝ์ฐ
function Button({ color, children }) {
return (
<button className={`bg-${color}-600 hover:bg-${color}-500 ...`}>
{children}
</button>
)
}
props๋ก ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ญ์ ์์ ํ ๋ฌธ์์ด๋ก ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ํ์ง ์๋๋ค.
โ ๋์ํ๋ ๊ฒฝ์ฐ
function Button({ color, children }) {
const colorVariants = {
blue: 'bg-blue-600 hover:bg-blue-500',
red: 'bg-red-600 hover:bg-red-500',
}
return (
<button className={`${colorVariants[color]} ...`}>
{children}
</button>
)
}
props์ ๋ฐ๋ผ ์คํ์ผ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ, ๊ฐ์ฒด์ ๋ฏธ๋ฆฌ ํด๋์ค๋ช ์ ์ ์ํด๋๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
props๋ก ๋ฐ์ color์ ๋ฐ๋ผ ๋ฐฐ๊ฒฝ์์ ์ ์ํ ์ ์๋ค.
'๐ ํ๊ณ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2022๋ ํ๊ณ - ์น ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ค (0) | 2023.03.07 |
---|