일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pintos
- TiL
- 소켓
- 리액트
- 사이드프로젝트
- JavaScript
- Flutter
- 스택
- 코드트리
- HTML
- 크래프톤정글
- userprog
- 백준
- 큐
- Java
- 크래프톤 정글
- 핀토스
- 자바스크립트
- 모션비트
- 나만무
- Vue.js
- 시스템콜
- corou
- CSS
- defee
- 4기
- 자바
- 티스토리챌린지
- 오블완
- 알고리즘
- Today
- Total
미새문지
24.08.14 day46 CSS 적용 방식 본문
주요 방식
기본 CSS 파일 사용
리액트에서 가장 기본적인 방법은 일반적인 HTML과 마찬가지로 외부 CSS 파일을 사용하는 것이다. 이 방법은 모든 컴포넌트에서 동일한 CSS 파일을 공유할 수 있다.
// App.js
import React from "react";
import "./App.css"; // CSS 파일을 임포트
function App() {
return (
<div className="App">
<h1>Hello, React!</h1>
</div>
);
}
export default App;
==================
/* App.css */
.App {
text-align: center;
}
h1 {
color: blue;
}
CSS Modules
CSS Modules는 리액트에서 컴포넌트 단위로 스타일을 관리하는 방법이며, 클래스 이름 충돌을 방지하기 위해 각 CSS 클래스는 해당 컴포넌트에만 적용된다.
// App.module.css
.app {
text-align: center;
}
.title {
color: blue;
}
===========================
// App.js
import React from "react";
import styles from "./App.module.css"; // 모듈화된 CSS를 임포트
function App() {
return (
<div className={styles.app}>
<h1 className={styles.title}>Hello, React with CSS Modules!</h1>
</div>
);
}
export default App;
이 경우 App.module.css 파일에서 정의된 클래스들은 styles.app과 styles.title처럼 사용되고, 이로 인해 클래스 이름이 고유해져 다른 스타일과 충돌할 가능성이 줄어든다.
Styled Components (CSS-in-JS)
Styled Components는 리액트에서 CSS-in-JS 방식을 사용하는 라이브러리이다. 이 방법은 자바스크립트 파일 내에서 스타일을 작성하고, 컴포넌트와 스타일을 하나의 단위로 결합할 수 있다.
// App.js
import React from "react";
import styled from "styled-components";
function App() {
return (
<div>
<Title>Hello, React with Styled Components!</Title>
</div>
);
}
export default App;
const Title = styled.h1`
color: blue;
text-align: center;
`;
styled-components를 사용하면 스타일을 컴포넌트 단위로 관리할 수 있고, 동적 스타일링도 가능하여 매우 유연하다.
Inline Styles
리액트에서는 JSX에서 직접 인라인 스타일을 적용할 수도 있는데, 이 방식은 자바스크립트 객체로 스타일을 정의하는 방식이다.
function App() {
const headingStyle = {
color: 'blue',
textAlign: 'center'
};
return (
<div>
<h1 style={headingStyle}>Hello, React with Inline Styles!</h1>
</div>
);
}
export default App;
인라인 스타일은 매우 간단하지만, 복잡한 스타일을 관리하기에는 부적합할 수 있다.
Sass
Sass같은 CSS 전처리기를 리액트 프로젝트에 통합할 수도 있다. 이런 전처리기는 CSS 작성에 변수를 사용할 수 있게 하며, 코드의 재사용성을 높여준다.
// App.js
import React from "react";
import "./App.scss"; // SCSS 파일을 임포트
function App() {
return (
<div className="App">
<h1>Hello, React with Sass!</h1>
</div>
);
}
export default App;
============================
// App.scss
$app-color: blue;
.App {
text-align: center;
h1 {
color: $app-color;
}
}
Sass를 이용하면 중첩 스타일링이나 변수 사용 등의 기능을 활용할 수 있어 편리하다.
Tailwind CSS 또는 Bootstrap
Tailwind CSS, Bootstrap 같은 CSS 프레임워크를 리액트에서 사용할 수도 있으며, 이 프레임워크들은 미리 정의된 클래스를 활용하여 빠르게 UI를 구성할 수 있게 도와준다.
// App.js
import React from "react";
import './tailwind.css';
function App() {
return (
<div className="text-center">
<h1 className="text-blue-500">Hello, React with Tailwind CSS!</h1>
</div>
);
}
export default App;
이처럼 프레임워크를 활용하면 CSS를 직접 작성하는 대신 미리 만들어진 클래스를 사용하는 방식으로 스타일을 적용할 수 있다.
리액트에서 CSS를 적용하는 방법은 프로젝트의 규모, 복잡성, 스타일 관리 방식에 따라 다양한 선택지가 있으며, CSS 파일을 단순히 가져오는 방식부터 모듈화, 인라인 스타일링, CSS-in-JS, 전처리기, 프레임워크 사용까지 여러 방법을 조합하여 사용할 수 있으니 상황에 맞는 적절한 방식을 선택하는 것이 중요하다.
본인은 styled-components 방식이 편하고 css 찾기가 수월해 제일 많이 사용하는 것 같다. 최근에는 scss 방식과 섞어서 css가 좀 많아질 것 같으면 scss파일로 css를 적용시키고 짧은 코드의 컴포넌트에는 styled-components를 사용하고 있다.
'개발 TIL' 카테고리의 다른 글
24.08.19 day48 HTML 작성 규칙 (0) | 2024.08.19 |
---|---|
24.08.16 day47 필터 구현 (0) | 2024.08.16 |
24.08.13 day45 타입스크립트 경로 에러, SPA (0) | 2024.08.13 |
24.08.12 day44 ESLint (0) | 2024.08.12 |
24.08.09 day43 mashup, 서비스 공격, OSPF (0) | 2024.08.09 |