Next.js는 리액트 어플리케이션의 서버사이드렌더링을 쉽게 구현할 수 있도록 도와주는 프레임워크다.
create-react-app
과 비슷하다고 생각할 수 있는데, next.js에서는 서버사이드렌더링과 코드스플릿팅 자동화를 위해 몇 가지 정형화된 규칙을 따라야한다.
등등...
이 글에서는 next.js 프레임워크를 사용한 리액트 프로젝트에 CSS 모듈을 적용하고, 여러개의 className
을 사용하는 방법을 정리했다.
module.css
으로 끝나야한다. style
이라는 이름으로 import 한다.className
으로 사용한다.className={styles.클래스이름}
으로 사용한다.import styles from './YearlyCalendar.module.css'
<div className={styles.header}><div>
참고 : next.js 공식문서
<div class="gantt__row gantt__row__months"></div>
일반 리액트 프로젝트에서 div 태그에 class를 여러 개 적용하고 싶으면 위 코드처럼 공백을 사용하면 되지만, next에서는 에러가 난다.
아래처럼 classnames
라이브러리를 사용하면 next.js에서도 클래스를 여러개 사용할 수 있다.
import styles from './YearlyCalendar.module.css'
import classNames from 'classnames';
<div className={classNames({[styles.gantt__row]: true, [styles.gantt__row__months]: true})}>
Classnames 라이브러리의 자세한 사용법은 README를 참고하면 좋을듯.
안녕하세요! 혹시 classnames 라이브러리를 styles 를 간편하게 바인딩 하는 목적으로 사용하는게 아닌가요? styles.gantt 를 classNames('gantt') 이런 식으로 사용하게끔 하는거 같은데 맨 아래 예제 보고 의문이 들어서 질문 남겨봅니다 :)