본문 바로가기
프로그래밍/React

React - Styled Components

by hustle-ing 2023. 4. 19.

Styled Components

CSS in JS 라이브러리를 사용하면 CSS도 쉽게 Javascript 안에 넣어줄 수 있으므로, HTML + JS + CSS까지 묶어서 하나의 JS파일 안에서 컴포넌트 단위로 개발할 수 있게 된다. 이러한 CSS in JS 라이브러리 중에서 현재 가장 있기 있는 라이브러리가 Styled Components이다.

 

 

Styled Components 문법

1. 컴포넌트 만들기

ES6의 Templete Literals 문법(백틱 `)을 사용한다.

 

 

2. 컴포넌트를 재활용해서 새로운 컴포넌트 만들기

컴포넌트를 선언하고 styled( )에 재활용할 컴포넌트를 전달해주면 된다.

 

 

3. Props 활용하기

Styled Component로 만든 컴포넌트도 React 컴포넌트처럼 props를 내려줄 수 있다. 템퍼럴 리터럴 문법을 사용하여 JavaScript 코드를 사용할 수 있으며, props를 받아오려면 props를 인자로 받는 함수를 만들어 사용하면 된다.

 

Props로 조건부 랜더링 하기

위 코드는 삼항 연산자를 이용해 <Button> 컴포넌트에 skyblue라는 props가 있는지 확인하고, 있으면 배경색으로 skyblue를, 없으면 white를 지정해 주는 코드이다. 이 코드에 따라 렌더링 된 <Button> 컴포넌트는 아래 그림과 같다.

 

4. 전역 스타일 설정하기

우선 전역 스타일을 설정하기 위해 Styled Components에서 createGlobalStyle 함수를 불러와야 한다.

import { createGlobalStyle } from "styled-components"

그 다음 이 함수를 사용해 CSS 파일에서 작성하듯 설정해 주고 싶은 스타일을 작성한다.

const GlobalStyle = createGlobalStyle`
  button {
    padding: 5px;
    margin: 2px;
    border-radius: 5px;
    }
 `

이렇게 만들어진 <GlobalStyle> 컴포넌트를 최상위 컴포넌트에서 사용해주면 전역에 <GlobalStyle> 컴포넌트의 스타일이 적용된다.

'프로그래밍 > React' 카테고리의 다른 글

React - Diffing Algorithm  (0) 2023.05.22
React - Virtual DOM  (0) 2023.05.22
React - Side Effect / Pure Function  (0) 2023.04.03
React - State & Props  (0) 2023.03.28
React - 기초  (0) 2023.03.22

댓글