Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- includes
- react
- Element
- component
- React calculator
- tag
- 볶음밥
- React.js
- Rendering
- javascript
- map
- ES6
- wep
- Node.js
- scope
- vue.js
- 회고록
- 노드
- CSS
- 키다리 개발자
- html
- 시맨틱
- 키다리 개발 일지
- closure
- DoM
- jsx
- ecma
- web
- props
- 키다리의 개발일지
Archives
- Today
- Total
키다리 개발자
CSS Module (React 컴포넌트 스타일링) 본문
CSS Module은 CSS를 불러와서 사용할 때 클래스 이름을 고유한 값으로 자동으로 만들어서 컴포넌트 스타일 클래스
이름이 중첩되는 현상을 방지해 주는 기술입니다.
확장자는 .module.css 파일로 저장하기만 하면 CSS Module이 적용됩니다.
className이 하이픈(-)이 포함되어 있는 경우
1
2
3
4
5
6
7
8
9
10
11
12
|
import React from 'react'
import style from './style.module.css';
const Home = () => {
return(
<div className={style['header-image']}>
<span>하이픈 포함되어 배열로 스타일링</span>
</div>
);
};
export default Home;
|
CSS Module이 적용된 스타일 파일을 불러오면 객체를 하나 전달받게 되는데 CSS Module에서 사용한 클래스 이름과
해당 이름을 고유화한 값이 키-값 형태로 들어 있습니다.
이 고유한 클래스 이름을 사용하려면 클래스를 적용하고 싶은 JSX Element에 className={style['클래스-이름']}
배열로 감싼 형태로 전달해 주면 됩니다.
className에 하이픈이 없는 경우
1
2
3
4
5
6
7
8
9
10
11
12
|
import React from 'react'
import style from './style.module.css';
const Home = () => {
return(
<div className={style.header}>
<span>하이픈 미포함되어 배열로 스타일링</span>
</div>
);
};
export default Home;
|
클래스를 적용하고 싶은 JSX Element에 className={style.클래스이름} 형태로 전달해 주면 됩니다.
CSS Module을 사용한 클래스 이름을 두 개 이상 적용할 때
1
2
3
4
5
6
7
8
9
10
11
12
|
import React from 'react'
import style from './style.module.css';
const Home = () => {
return(
<div className={`${style.header} ${style.nav}`}>
<span>Class 이름을 두개 이상 사용할 </span>
</div>
);
};
export default Home;
|
위 코드에서는 ES6 문법 템플릿 리터럴을 사용하여 문자열을 합해 주었습니다.
const name = '키다리';
const message = `제 이름은 ${키다리} 입니다.`;
여기서 사용되는 ` 문자는 백틱(Backtick)이라고 부릅니다.
CSS Module 클래스를 여러 개 사용할 때 템플릿 리터럴을 사용하고 싶지 않다면 다음과 같이 작성할 수도 있습니다.
className={[style.header, style.nav}].join(' ')}
'React.js' 카테고리의 다른 글
React Router (SPA, Route, Link) (0) | 2020.01.23 |
---|---|
React 클래스 컴포넌트와 함수형 컴포넌트의 차이점 (0) | 2020.01.09 |
React Hooks (useState, useEffect) (0) | 2020.01.07 |
React.js 계산기 만들기(state, props, map) (0) | 2019.12.03 |
React 리액트란? (0) | 2019.11.28 |
Comments