3. CSS in JS
CSS-in-JS๋ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ ์์์ ์คํ์ผ์ ์ง์ ํ๋ ์คํ์ผ ์ง์ ๊ธฐ์ .
CSS์ ๋ฌธ์ ์ ์ผ๋ก ๋ณผ ์ ์๋ค
Global namespace ๋ชจ๋ ์คํ์ผ์ด global์ ์ ์ธ๋์ด ์ค๋ณต๋์ง ์๋ class ์ด๋ฆ์ ์ ์ฉํด์ผ ํจ.
Dependencies css๊ฐ ์์กด ๊ด๊ณ ๊ด๋ฆฌ๊ฐ ํ๋ฌ
Dead Code Elimination ๊ธฐ๋ฅ ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์ ๊ณผ์ ์์ ๋ถํ์ํ css๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ด๋ ค์
Minification ํด๋์ค ์ด๋ฆ์ ์ต์ํ๊ฐ ์ด๋ ค์
Sharing Constants JS ์ฝ๋์ ์ํ ๊ฐ์ ๊ณต์ ํ ์ ์์
Non-deterministic Resolution CSS ๋ก๋ ์์์ ๋ฐ๋ผ ์คํ์ผ ์ฐ์ ์์๊ฐ ๋ฌ๋ผ์ง
Isolation CSS์ JS๊ฐ ๋ถ๋ฆฌ๋ ํ์ ์์์ ๋ฐ๋ฅธ ๊ฒฉ๋ฆฌ๊ฐ ์ด๋ ค์
๋ณด์ํ๊ณ ์ CSS in CSS, CSS in JS ๋ฐฉ์์ด ๋ฑ์ฅ.
CSS in CSS
SASS, CSS Modules๊ฐ ์๋ค.
๋์ผํ ๋ค์ ์คํ์ด์ค๋ฅผ ๊ณต์ ํ๋ ์์ฑ๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ฉ์ด. (nested ๊ตฌ์กฐ)
! ๋ณ์ ์ฌ์ฉ์ผ๋ก ์ค๋ณต ์ฝ๋ ๊ด๋ฆฌ ์ฉ์ด.
! mixin ์ ํตํด ์คํ์ผ ์ฌ์ฌ์ฉ์ฑ์ ๋์
ํ์ง๋ง ์ฌ์ ํ ํด๋์ค ์ค๋ณต์ ๋ฌธ์ ์ ์ ํด๊ฒฐํด์ฃผ์ง ๋ชปํจ.
CSS Modules ์ ์ฅ์
์ค๋ณต ํด๋์ค๋ช ์ ๋ ์ด์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋จ( ๋ชจ๋ CSS ์ ํ์์ ๊ณ ์ ํ ํด์๊ฐ์ ๋ถ์ฌํจ์ผ๋ก์จ ์์ฑ ์ค์ฒฉ์ ๋ฐฉ์งํจ )
๋จ์ .
์ค๋ณต ํด๋์ค๋ฅผ ์จ๋ ์๊ด ์์ผ๋ ํด๋์ค๋ช ์ ์ฑ์์์ด ์์ฑํด๋ ๋์ํ๋ค
์ปดํฌ๋ํธ๋ณ cssํ์ผ์ ์์ฑํ๋ค๋ณด๋ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ๋๋ฌด ๋ง์ css ํ์ผ์ ๊ด๋ฆฌํด์ผํจ.
CSS in JS ์ฅ์
CSS๋ฅผ ์ปดํฌ๋ํธ ๋ ๋ฒจ๋ก ์ถ์ํํ๋ค
JS ํ๊ฒฝ์ ์ต๋ํ์ผ๋ก ํ์ฉ ๊ฐ๋ฅํ๋ค
CSS ์ฝ๋ ๊ฒฝ๋ํ( BEM ๋ฑ์ผ๋ก ํด๋์ค ๋ช ์ด ๊ธธ์ด์ง๋๋ผ๋ ์๋์ผ๋ก ์งง์ ๊ธธ์ด์ ์ ๋ํฌํ ํด๋์ค๋ฅผ ์์ฑํ๋ค )
styled components ๋จ์
๋ฌ๋ ์ปค๋ธ.
์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋ CSS๊ฐ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์, FOUC ๊ฐ ๋ฐ์ํ ์ ์๋ค ( FOUC( Flash of unstyled content )
: ์คํ์ผ ์ํธ๊ฐ ์ ์ฉ๋๊ธฐ ์ ๋งํฌ์
๋ ๊ทธ๋๋ก์ ๋ชจ์ต์ด ์ ๊น ๋ณด์ด๋ ํ์
๋ณ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น์ ๋ฐ๋ผ ๋ฒ๋ค ํฌ๊ธฐ ์ฆ๊ฐ, CSS-in-CSS์ ๋นํด ๋๋ฆฐ ์๋
Last updated