7. StyledComponents
๐ฎ Styled Components ๋ฅผ ์จ๋ณด์
Styled Components ๋ React ์ปดํฌ๋ํธ ์์คํ ์์์ ๋ณต์กํ CSS๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ํ ์ ์์์ง์ ๋ํ ๊ฒฐ๊ณผ์ด๋ค. ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์๋ค.
๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ๋ฅผ ์ถ์ ํ์ฌ ํด๋น ์คํ์ผ๋ง ์ฝ์ ํ๊ณ ์์ ํ๋ค.
์ฝ๋๋ฅผ ๋ถํ ํ์ฌ ์ต์ํ์ ์ฝ๋๋ง ๋ก๋ํ ์ ์๋ค.
๊ณ ์ ํ ํด๋์ค ์ด๋ฆ์ ์์ฑํด์ฃผ๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ช ์ ๋ฒ๊ทธ๊ฐ ์๋ค.
๋ฐ๋ผ์, ํ๋์ ์ปดํฌ๋ํธ๊ฐ ์ญ์ ๋๋ฉด, ํด๋นํ๋ ๋ชจ๋ ์คํ์ผ์ ์ญ์ ํ ์ ์๋ค.
์ปดํฌ๋ํธ์ props ์ ๊ธ๋ก๋ฒ ํ ๋ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ์ผ์ ์กฐ์ ํ์ฌ ์ง๊ด์ ์ผ๋ก ๊ด๋ฆฌํ๋ค.
์ปดํฌ๋ํธ์ ์ํฅ์ ๋ฏธ์น๋ ์คํ์ผ์ ์ฐพ๊ธฐ ์ํด์ ์ฌ๋ฌ ํ์ผ์ ์กฐ์ฌํ์ง ์์๋ ๋๋ค.
ํ์ค์ ๋ง๊ฒ CSS๋ฅผ ์์ฑํ๊ณ ๋๋จธ์ง๋ Styled Components ๊ฐ ์ฒ๋ฆฌํ๋๋ก ํ๋ค. tailwind ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ํ์ค์ ๋ง๋ CSS๋ ์๋๊ธฐ ๋๋ฌธ์, ์ง์ ์ฅ๋ฒฝ์ด ์๋ค.
๐ธ Styled Components ์ค์น
npm ์ผ๋ก ์ค์นํ๋, type ๊น์ง ์ค์นํด์ค๋ค.
npm install styled-components
npm i -D @types/styled-components @swc/plugin-styled-componentsSWC๋ก Babel ์ ๋์ฒดํ๋ค.
npm i -D @swc/plugin-styled-componentsReact ์์ SWC๋?
Speedy Web Compiler์ ์ฝ์
Rust๋ก ์์ฑ๋ ์ด๊ณ ์ ์๋ฐ์คํฌ๋ฆฝํธ/ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ
๋ฐ๋ฒจ๊ณผ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋์ฒดํ ์ ์๋๋ก ์ค๊ณ๋์ด ํจ์ฌ ๋น ๋ฅธ ์ปดํ์ผ ์๊ฐ์ ์ ๊ณต
SWC๋ ์ปดํ์ผ๊ณผ ๋ฒ๋ค๋ง ๋ชจ๋์ ์ฌ์ฉ ๊ฐ๋ฅ
์ปดํ์ผ์ ๊ฒฝ์ฐ, ์ต์ JavaScript ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ JavaScript/TypeScript ํ์ผ์ ๊ฐ์ ธ์ ๋ชจ๋ ์ฃผ์ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋๋ ์ ํจํ ์ฝ๋๋ฅผ ์ถ๋ ฅํ๋ค.
.swcrc ํ์ผ ์์ฑํ๊ธฐ
VSCODE ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น(์ค์)
vscode ์์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์ vscode-styled-components extension ์ ์ค์นํ๋ค.
๐ ์ฌ์ฉํด๋ณด๊ธฐ
1. ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฐฉ๋ฒ
2. ์ฌ๋ฌ๊ฐ์ง ์คํ์ผ์ ์ ์ํ ํ ๋๊ฒจ๋ฐ์ ์ฌ์ฉํ๊ธฐ
3. return ์ฝ๋๋ฅผ ๋ฐ๋ก ๋นผ์ className ์ผ๋ก ๋์ฒดํ์ฌ ์ฌ์ฉํ๊ธฐ
์์๋ ๊ฒ: styled. ์ ์ญํ ์ ํด๋์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด๋ค.
3. props ๊ฐ์ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก CSS ์์ฑ ๊ฐ์ ๋ณ๊ฒฝ
version 1
version 2
4. attr ์ค์
Theme
jest manual mock ๋ฌธ์ ๋ณด๊ธฐ
Last updated