Closed hyeonseong2023 closed 1 day ago
๋ฒ๋ค ํฌ๊ธฐ ์ฆ๊ฐ
๋๋ฒ๊น ๋์ด๋ ์ฆ๊ฐ
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ๋ณต์ก์ฑ
CSS-in-JS ์คํ์ผ์ ๋น๋ ์ ์ ์ CSS ํ์ผ๋ก ์ถ์ถํ์ฌ ๋ฐํ์ ์์ฑ ๋น์ฉ์ ์ต์ํ.
import { styled } from '@linaria/react';
const Button = styled.button`
background-color: blue;
color: white;
`;
CSS-in-JS๋ก ์์ฑ๋ ์คํ์ผ์ ์ปดํฌ๋ํธ ๋จ์๋ก ๋ถ๋ฆฌํ๊ณ , ํ์ด์ง๋ณ๋ก ํ์ํ ์คํ์ผ๋ง ๋ก๋.
const LazyComponent = React.lazy(() => import('./LazyComponent'));
<Suspense fallback={<div>Loading...</div>}>
<LazyComponent />
</Suspense>
CSS-in-JS | Atomic CSS | |
---|---|---|
์คํ์ผ ์ ์ | JavaScript ๋ด์์ CSS ์์ฑ | HTML/JSX์์ ๋ฏธ๋ฆฌ ์ ์๋ ์ ํธ๋ฆฌํฐ ํด๋์ค ์ฌ์ฉ |
๋ฐํ์ ์ค๋ฒํค๋ | JavaScript ์คํ ์์ ์์ ์คํ์ผ ์์ฑ ๋ฐ ์ฃผ์ ํ์ | ๋น๋ ํ์์ ๋ชจ๋ ์คํ์ผ ์์ฑ (์ ๋ก ๋ฐํ์) |
๋ฒ๋ค ํฌ๊ธฐ | CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด์ ํฌ๊ธฐ ์ถ๊ฐ | ์ฌ์ฉ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ง ํฌํจ๋์ด ์ต์ ํ |
์ฑ๋ฅ | ๋ฐํ์ ๊ณ์ฐ ํ์ SSR ์ ์ถ๊ฐ ์ค์ ํ์ |
์ต์ ํ๋ ์ ์ CSS ์์ฑ SSR ์นํ์ |
์ ์ง๋ณด์ | ์ปดํฌ๋ํธ๋ณ ์คํ์ผ ๊ด๋ฆฌ ์ฉ์ด ์คํ์ผ ์ค๋ณต ๊ฐ๋ฅ์ฑ ์กด์ฌ |
์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํด๋์ค๋ก ์ค๋ณต ์ต์ํ ๊ธด ํด๋์ค๋ช ์ผ๋ก ์ธํ ๊ฐ๋ ์ฑ ์ด์ |
// Tailwind CSS
<button class="bg-green-500 text-white px-4 py-2 rounded hover:bg-green-600">
๋ฒํผ
</button>
// ์์๋๋ก ๋ฐฐ๊ฒฝ์, ํ
์คํธ, ํจ๋ฉ, ๋ชจ์๋ฆฌ, ํธ๋ฒ
๐ 328p โ CSS-in-JS์ ๋จ์ ๊ณผ ๋ณด์ ๋ฐฉ๋ฒ ์ฑ ์์๋ CSS-in-JS์ ์ฅ์ ๋ง์ ์๊ธฐํ๊ณ ์๋๋ฐ, CSS-in-JS์ ๋จ์ ์ด ์๋์ง, ์๋ค๋ฉด ์ด๋ฅผ ๋ณด์ํ ๋ฐฉ๋ฒ์ ๋ฌด์์ด ์๋์ง ์๊ณ ์ถ์ด์!