본문 바로가기

React [클론코딩 학습일지]

3-2. CSS in React

728x90

Reactjs에서 CSS를 활용하는 3가지 방법 - 2. css 모듈 이용하기

 

css module을 이용하면 className 을 임의화하여 css가 global이 아닌 local이 되도록 함!

 

1. css 파일을 module.css로 바꿔주기 (CRA를 통해 만든 프로젝트이기때문에 가능)

 

2. css 파일에 className 넣어주기

/* Header.module.css */

.navList { 
	display: flex;
}

.navList:hover {
	background-color: blue;
}

 

 

3. import 방식을 변경해주기 like javascript (꼭 styles라고 할 필요 없음. 사용하려는 변수 넣어주면 됨)

// 기존
import 'Header.css';

//변경
import styles from 'Header.module.css';

 

4. className을 객체처럼 사용하기

// 기존
<ul className="navList">
...
</ul>

// 변경
<ul className={styles.navList}>
...
</ul>

실행결과는 동일하지만, 개발자 도구로 요소를 찾아 className을 확인해보면 "navList"가 아닌 임의값으로 변경된 것을 확인 할 수 있다.

이렇게 되면 navList 라는 className을 다른 컴포넌트에서도 사용할 수 있게 된다!

 

그러나 여전히 javascript 와 css가 분리되어있고, className을 기억해야한다는 단점이 있다.

또한 javascript 문법 상 {} 내에 하이픈을 사용할 수 없기때문에 className은 항상 카멜케이스로 작성되어야한다.

module을 이용하는 방법은 규모가 작은 프로젝트에 더 적합하다.

728x90

'React [클론코딩 학습일지]' 카테고리의 다른 글

3-4. Global Styles In React  (0) 2021.07.20
3-3. CSS in React  (0) 2021.07.19
3-1. CSS in React  (0) 2021.07.13
2-1. React Router  (0) 2021.07.02
2. CRA 사용하여 프로젝트 셋팅하기  (0) 2021.06.07