ygreenb
yellowgreenblue
ygreenb
전체 방문자
오늘
어제
  • TIL (130)
    • Algorithm & Data Structure (70)
      • 이론 (4)
      • 프로그래머스 (54)
      • 백준 (12)
    • JAVA (4)
    • Android Studio (9)
    • Database (1)
    • WEB (25)
      • HTML+CSS (7)
      • Javascript (5)
      • React (11)
      • Django (1)
      • Node.js (1)
    • Computer Vision (13)
    • Git (8)

블로그 메뉴

  • HOME
  • TAG
  • GITHUB

공지사항

인기 글

태그

  • 백준
  • BFS
  • Comparator
  • 깃허브
  • Queue
  • reactjs
  • 코틀린
  • 프로그래머스
  • 스택/큐
  • DP
  • sort
  • HashMap
  • dfs
  • 해시
  • java
  • stack
  • React
  • git
  • 프로그래머스 Lv.2
  • kotiln
  • entrySet
  • PriorityQueue
  • 안드로이드
  • getOrDefault
  • 깃
  • greedy
  • git bash
  • Android
  • compareTo()
  • Arrays.sort()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ygreenb

yellowgreenblue

WEB/React

[React] CSS Module - Component에 style 주기

2022. 2. 8. 17:50

앞서 포스팅한 create-react-app을 통해서, 특정 컴포넌트를 위한 css 파일을 만들 수 있는 기능을 사용할 수 있다.

먼저 css를 사용하는 방법에는 두 가지 선택지가 있는데 아래와 같다.

  1. 하나의 style 파일 만들기
  2. component 마다 style 파일 만들기

 

1. styles.css 파일

styles.css 파일을 만들어 사용하는 것은 간단하다. css 파일에 넣고싶은 css코드를 작성하고, index.js에서 styel.css파일을 import를 해주면 된다.

    index.js

import "./styles.css";

하지만 이 방법은 css파일이 적용하려는 파일의 모든 부분에 import 된다는 단점이 있다.

 

2. component 마다 style 파일 만들어주기 - CSS Module

CSS Module 이라는 기술은, 리액트 프로젝트에서 컴포넌트를 스타일링 할 때 CSS 클래스가 중첩됨을 방지할 수 있다.

CRA로 만든 프로젝트에서 CSS Module을 사용할 때는, CSS 파일의 확장자를 .module.css로 하면된다. 예시를 들면 다음과 같다. 버튼 컴포넌트를 새롭게 만들어서 스타일링을 해주기 위해 Button.module.css 라는 파일을 만들었다.

    Button.module.css

.btn {
  color: white;
  background-color: tomato;
}

리액트 컴포넌트 파일에서 해당 css 파일을 불러올 때, css 파일에 선언한 클래스 이름들이 모두 고유해진다.
그리고 Button 컴포넌트를 만들면 다음과 같이 코드를 작성한다.

    Button.js

import propTypes from "prop-types";
import styles from "./Button.module.css";

function Button({ text }) {
  return <button className={styles.btn}>{text}</button>;
}

Button.propTypes = {
  text: propTypes.string.isRequired,
};

export default Button;

Button.module.css 파일을 import 해준 뒤,
className을 설정할 때, styles.btn처럼 import로 불러온 styels 객체 안에 있는 값을 참조해야 한다.

 

+

참고

https://react.vlpt.us/styling/02-css-module.html

 

2. CSS Module · GitBook

02. CSS Module 이번에는 CSS Module 이라는 기술에 대해서 알아봅시다. 리액트 프로젝트에서 컴포넌트를 스타일링 할 때 CSS Module 이라는 기술을 사용하면, CSS 클래스가 중첩되는 것을 완벽히 방지할

react.vlpt.us

 

저작자표시 (새창열림)

'WEB > React' 카테고리의 다른 글

[React] 'React' must be in scope when using JSX error 오류해결  (0) 2022.02.08
[React] 리액트 시작하기, create-react-app  (0) 2022.02.08
[React] github pages에 배포하기 (Publishing)  (0) 2022.02.03
[React] React Router 사용하기  (0) 2022.02.03
[React] API 사용하기  (0) 2022.02.02
    'WEB/React' 카테고리의 다른 글
    • [React] 'React' must be in scope when using JSX error 오류해결
    • [React] 리액트 시작하기, create-react-app
    • [React] github pages에 배포하기 (Publishing)
    • [React] React Router 사용하기
    ygreenb
    ygreenb
    개발공부기록장

    티스토리툴바