<aside> 📌 Goal: 컴포넌트에 CSS를 적용해봅니다.

</aside>

[목차]

1. 컴포넌트 스타일링

지금까지 Component, Props, State 까지 너무 잘 하고 있습니다. 짝짝 👏 이번 챕터에서는 우리가 만들었던 컴포넌트에 CSS를 적용해서 예쁘게 꾸며보겠습니다.

(1) 새로운 프로젝트 생성하기

이번 챕터를 시작하기에 앞서 우리가 연습할 새로운 프로젝트를 하나 더 생성해봅시다.

yarn create react-app 프로젝트이름

(2) 컴포넌트 구현해보기

우선 아래 이미지와 같이 한번 구현해볼까요? 아래의 CSS 치트 시트를 활용해서, 화면과 최대한 똑같이 만들어봅시다!

Untitled

(3) 컴포넌트 파일에서 CSS 코드 분리하기

지금까지, 한 파일 내에 style을 작성해보았는데요, 이부분을 CSS 파일로 따로 작성해보겠습니다.

JSX는 사실 HTML과 굉장히 닮아 있기 때문에 방법이 크게 다르지 않습니다. 단, 한가지 차이점이 있다면 classclassName 을 사용한다는 점입니다.

그럼 우리가 지금까지 작성했던 JS파일에서 CSS를 별도의 모듈(파일)로 분리해서 사용해볼까요?

import React from "react";

function App() {
  const style = {
    padding: "100px",
    display: "flex",
    gap: "12px",
  };

  const users = [
    { id: 1, age: 30, name: "송중기" },
    { id: 2, age: 24, name: "송강" },
    { id: 3, age: 21, name: "김유정" },
    { id: 4, age: 29, name: "구교환" },
  ];

  return (
    <div style={style}>
      {users.map((user) => {
        return <Square user={user} key={user.id} />;
      })}
    </div>
  );
}

export default App;

먼저, 컴포넌트 파일에서 className 을 넣어줍니다. 그리고 이 컴포넌트에서 적용할 CSS 파일을 import 해줘야 해요. 경로가 무척 중요하니 잘 확인하시길 바랍니다.

// src/App.js
import React from "react";
import Square from "./components/Square.js";
import "./App.css"; // 🔥 반드시 App.css 파일을 import 해줘야 합니다.

function App() {
  const users = [
    { id: 1, age: 30, name: "송중기" },
    { id: 2, age: 24, name: "송강" },
    { id: 3, age: 21, name: "김유정" },
    { id: 4, age: 29, name: "구교환" },
  ];

  return (
    <div className="app-style">
      {users.map((user) => {
        return <Square user={user} key={user.id} />;
      })}
    </div>
  );
}

export default App;

기존 style 변수에 넣어줬던 스타일 프로퍼티들을 별도에 CSS 파일로 옮겨보겠습니다.

❗️기존에는 style을 자바스크립트 객체로 작성했었기 때문에 CSS 프로퍼티의 값을 따옴표(””)로 감싸주었지만 CSS 문법에서는 따옴표를 다 지워주셔야 합니다.

<!--src/App.css-->
.app-style {
  padding: 100px;
  display: flex;
  gap: 12px;
}

그럼, 이렇게 컴포넌트 파일에서 CSS를 분리해보았습니다. 짜잔!

2. 더 알아보면 좋은 키워드