Intro
์๋ ํ์ธ์. ์ด๋ฒ ์๊ฐ์๋ DOM ์ ๊ทผ์ ํตํด CSS Module์ classname์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค .
How to solve the problem
์ ๋ next.js ์์ ํน์ className ์ ๊ฐ์ ธ์์ ์ ๊ฑฐํด์ค์ผ ํ์ต๋๋ค. CSS Module์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ์ผ ์ปดํฌ๋ํธ๋ง๋ค ์๋์ ํ์์ผ๋ก styles์ ๊ฐ์ ธ์์ ์คํ์ผ์ ์ ์ฉํด์คฌ์ต๋๋ค.
import styles from './styles.module.css'
์ฐธ๊ณ ๋ก css module ๋ด๋ถ ํ๋ก์ธ์ค๋ css ํด๋์ค๋ css ํ์ผ์ ํตํด ๊ทธ ํด๋์ค์ ์ด๋ฆ์ ๊ณ ์ ํ๊ฒ ๋ฐ๊ฟ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ๋ฐ๋ผ์ importํ๋ ๋ชจ๋ css ํ์ผ์ ๊ณ ์ ํ๊ฒ ๋ง๋ค์ด ์ค๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ์ ๋ถ๋ค์ ์ด ๊ธ [React ์๋ฒฝ ๊ฐ์ด๋] section 6 : ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ์คํ์ผ๋ง์์ ํ์ธํด์ฃผ์ธ์ :)
# Add
์ฌ๊ธฐ์ css ํ์ผ์์ ์ ์ํ ํน์ className์ DOM์ผ๋ก ๊ฐ์ ธ์ค๊ณ ์ถ์ ๋๋ ์๋์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
document.documentElement.classList.add(styles['full-width'])
# Remove
์ด์ ๋ฐ๋๋ก ํน์ className์ ์ ๊ฑฐํ๊ณ ์ถ์ ๋๋ remove() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ๊ฒ ์ ์ฉ์์ผ์ฃผ๋ฉด ๋ฉ๋๋ค.
document.documentElement.classList.remove(styles['full-width'])