Styled-Component๋ ์ฌ์ค npm์ ์ํด ์ถ๊ฐ๋ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ ๋ฟ์ด๋ค.
๊ทธ๋์ Create-React-App์ ํตํ react ์ฑ ์์ฑ์์ npm์ ์ด์ฉํด์ ์ถ๊ฐํด์ฃผ๊ธฐ๋ง ํ๋ฉด ์ค๋น๋ ๋๋๋ค.
์ ์ฉ ์์
์ ์ฉ ์์๋ ๋งค์ฐ ๊ฐ๋จํ ๊ณผ์ ์ ์ํด ์ํ๋๋ค.
- create-react-app์ผ๋ก react ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
- react ํ๋ก์ ํธ ์ด๊ธฐํ ์์
- npm ๋ชจ๋๋ก styled-components ์ถ๊ฐํ๊ธฐ
create-react-app์ผ๋ก react ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
ํ๋ก์ ํธ๋ฅผ ์์ฑํ์.
react ํ๋ก์ ํธ ์ด๊ธฐํ ์์
react ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ๋๋ svg๋ serviceworker๋ฑ์ ์ญ์ ํ๊ณ ๋ค์๊ณผ ๊ฐ์์ํ๋ก ๋ง๋ค์.
npm ๋ชจ๋๋ก styled-components ์ถ๊ฐํ๊ธฐ
๊ทธ๋ฆฌ๊ณ ํด๋น ํ๋ก์ ํธ์์ npm ๋ชจ๋๋ก styled-components๋ฅผ ์ถ๊ฐํ์.
๊ทธ๋ผ ์ด์ ๋ชจ๋ ์ค๋น๊ฐ ๋๋ฌ๋ค.
App.js์ styled-component importํ๊ธฐ
๊ทธ๋ฆฌ๊ณ ๋ ๊ฐ์ Button์ ๋ง๋ค์ด๋ณด์.
์ฌ๊ธฐ์ ์ฃผ์ํด์ผํ ์ ์ด <button>
์ด ์๋๋ผ ๋ฏธ๋ฆฌ styled-components์ ์ํด ๋ง๋ค์ด์ง <Button>
์ ๋ง๋ค์ด์ผ ํ๋ค!
๊ทธ๋ฆฌ๊ณ ์คํํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ๋์ฌ ๊ฒ์ด๋ค.
์ด ๋ง์ ํ์ฌ Button์ด ์ ์๋์ง ์์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค.
๊ทธ๋ผ ์ฐ๋ฆฌ๊ฐ ์ง๋ ์๊ฐ์ ๋ฐฐ์ ๋ Template Literal์ ๊บผ๋ด์ผ ํ ๋ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์์ Button ํจ์์ Tagged Template literal์ ์ ์ฉํด๋ณด์.
Tagged Template Literal ์ ์ฉํด์ ํ๋ฉด์ ๋์๋ณด๊ธฐ.
const Button = styled.button``;
์ ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ App ์ปดํฌ๋ํธ ์ฝ๋ ์๋์ ์์ฑํ๋ค.
๊ทธ๋ผ ์ผ๋จ ๋ฐฑํฑ ์์๋ ์๋ฌด ๊ฒ๋ ์์ง๋ง ํ๋ฉด์ ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋๋ค.
์ฌ๊ธฐ์ CSS ์ฝ๋๋ฅผ ์ ๋ฐฑํฑ ๋ด๋ถ์ ๋ฃ์ด๋ณด์.
๊ทธ๋ผ ์คํ์ผ์ด ๊ฐ๋จํ๊ฒ ์ ์ฉ๋๋ค.
์ฐ๋ฆฐ styled-components๋ฅผ ์ด์ฉํด์ ์ปดํฌ๋ํธ์ ์คํ์ผ๋ง์ ํ๋ค.
์ ๋ฆฌํด๋ณด์.
์ ๋ฆฌํ๋ฉด ์ฐ๋ฆฐ react-app์ styled-coomp๋ฅผ ์ถ๊ฐํด Tagged Template Literal ๋ฌธ๋ฒ์ผ๋ก ์คํ์ผ๋ง์ Button์ ์ถ๊ฐํ๋ค.
Button์ ์ฌ์ค Styled-comp์์ ๋ฏธ๋ฆฌ ์ ์๋ฅผ ํด ๋์ ๊ฐ์ฒด์ด์ง๋ง ์ฐ๋ฆฌ๋ ์์ผ๋ก ๋ค์ํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ฐฐ์นํด์ผ ํ๋ค.
์ฌ์ฉ์ ์ ์ ์ปดํฌ๋ํธ ์คํ์ผ๋ง
๊ทธ๋ผ ์ฐ๋ฆฌ๊ฐ ๋ง๋ Tag๋ฅผ ์คํ์ผ๋ง ํด๋ณด์.
์ฐ๋ฆฌ์ ๋ฒํผ์ div ํ๊ทธ๋ก ๊ฐ์ธ์ ๋ฉ์ง boundry๋ฅผ ๊ฐ๊ฒ ํด๋ณผ ๊ฒ์ด๋ค.
ํ์ง๋ง div๋ฅผ ์คํ์ผ๋ง ํ๋ ค๋ฉด css ํ์ผ์ import ํ๊ฑฐ๋ ํ๊ทธ ๋ด์ style ์์ฑ์ ์ด์ฉํด์ผํ๋ค.
๊ทธ๋ผ styled-component๋ฅผ ์ด์ฉํ๋ ์๋ฏธ๊ฐ ์์ง ์์๊น?
ํ์ง๋ง ๋คํ์ด๋ styled-component๋ ๊ทธ๋ฐ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
์์ ์ฝ๋ ์ฒ๋ผ
const ์ปดํฌ๋ํธ = styled.ํ๊ทธ `
css ๋ฌธ๋ฒ...
`
์ ํ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ์ ์ํ๋ ์ปดํฌ๋ํธ ๋ํ ์คํ์ผ์ ๊ฐ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ์ค๋์ ๊ฐ๋จํ๊ฒ Styled-component์ ๋ํด์ ์์๋ณด์๋ค.
์ด์ ๋์ถฉ ์ด๋ป๊ฒ ๋์ํ๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ํ๋์ง์ ๋ํด ์์๋ณด์์ผ๋ ๋ค์ ์๊ฐ๋ถํฐ๋ Styled-component์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ๋ค๊ณผ ํค์๋ ์ค์ฌ์ผ๋ก ๋ธ๋ก๊ทธ ๊ธ์ ์จ๋ณด๋ ค ํ๋ค.
๋๊ธ