3. Next.js์ styled-components
๐คย ๋ญ๊ฐ ๋ฌธ์ ์งโฆ?
๊ทธ๋ฅ ์๊ฐ ์์ด โ์ ์ ์ฉ๋๊ฒ ์ง?โ ํ๊ณ CRA์์์ ๊ฐ์ด ํ์๋๋ก styled-components๋ฅผ ์ฌ์ฉํ๋ค.
๊ทผ๋ฐ, ๋ด๊ฐ ์ ์ฉํ CSS๊ฐ ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋คโฆ
๋ถ๋ช ์ด๋ ๊ฒ ๋ ์ผ ํ๋๋ฐโฆ
์ด๋ ๊ฒ ์๋์ ๊ฐ์ด CSS๊ฐ ์ ์ฉ๋์ง ์์ ์ํ์ raw ๋ฒํผ์ด ๋ ๋๋ง ๋๋ ๊ฒ์ด์๋ค.
๋ถ๋ช ๋ญ๊ฐ SSR ๋ฐฉ์์ ์ํ ๋ฌธ์ ์ผ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋คโฆ
Next.js๋ SSR ๋ฐฉ์์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ์๋ฒ์์ HTML์ ๋ฏธ๋ฆฌ ๊ทธ๋ฆฐ ๋ค, ๋ทฐ์ ๋์์ค๋ค. ๋ฐ๋ผ์ pre-rendering
๊ณผ์ ์์ styled-components
๊ฐ ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค.
์ฆ, styled-components
๊ฐ ์ ์ฉ๋๊ธฐ๋ ์ ์ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋๋ ๊ฒ์ด ๋ฌธ์ ๋ผ๊ณ ๋ณธ ๊ฒ์ด๋ค.
๐ย ํด๊ฒฐ ๋ฐฉ๋ฒ
babel-plugin-styled-components ์ค์น
1 | $ npm install --save-dev babel-plugin-styled-components |
babel ํ์ผ ์์ฑํด์ฃผ๊ธฐ
์ต์๋จ ๋ฃจํธ(root ๋๋ ํ ๋ฆฌ)์
.babelrc
ํ์ผ์ ์์ฑํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์ ์ฝ๋๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ๋๋ค!
1 | { |
_document.tsx ํ์ผ ์์ฑ
pages ์๋์
_document.ts
ํ์ผ์ ์์ฑํด์ค๋ค.
1 | import Document, { DocumentContext } from 'next/document'; |
์ฌ๊ธฐ๊น์ง ํด์ฃผ๋ฉด ๋ ๋๋ง ์์๋ styled-components๊ฐ ์ ์ ์ฉ๋์ด ๋ทฐ์ ๋ํ๋๊ฒ ๋๋ค ๐
3. Next.js์ styled-components