스타일드 컴포넌트

이상진·2023년 8월 30일
post-thumbnail

스타일드 컴포넌트를 활용한 리액트 스타일링

리액트 애플리케이션을 개발할 때 스타일링은 중요한 과제 중 하나입니다. 스타일드 컴포넌트는 리액트 컴포넌트를 위한 강력한 스타일링 방법 중 하나로, CSS-in-JS의 한 형태입니다.

스타일드 컴포넌트란?

스타일드 컴포넌트는 리액트 컴포넌트의 스타일을 정의하고 적용하기 위한 라이브러리입니다. 이를 사용하면 JavaScript 파일 안에서 컴포넌트와 관련된 스타일을 작성할 수 있습니다. 예제 코드를 통해 살펴보겠습니다.

import styled from 'styled-components';

const Button = styled.button`
  background-color: #4285f4;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
`;

const App = () => {
  return (
    <div>
      <h1>스타일드 컴포넌트로 스타일링하기</h1>
      <Button>클릭하세요</Button>
    </div>
  );
};

스타일드 컴포넌트에서 풀옵스 사용하기

import React from 'react';
import styled from 'styled-components';

// 스타일드 컴포넌트를 사용하여 스타일링된 버튼 컴포넌트를 생성합니다.
const StyledButton = styled.button`
  background-color: ${(props) => props.backgroundColor || '#007bff'};
  color: ${(props) => props.textColor || '#fff'};
  font-size: ${(props) => props.fontSize || '16px'};
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;

  &:hover {
    background-color: ${(props) => props.hoverBackgroundColor || '#0056b3'};
  }
`;

// 버튼 컴포넌트에 프롭스를 전달하여 스타일을 동적으로 설정합니다.
const CustomButton = ({ text, onClick, backgroundColor, textColor, fontSize, hoverBackgroundColor }) => {
  return (
    <StyledButton
      backgroundColor={backgroundColor}
      textColor={textColor}
      fontSize={fontSize}
      hoverBackgroundColor={hoverBackgroundColor}
      onClick={onClick}
    >
      {text}
    </StyledButton>
  );
};

// 사용 예시
const App = () => {
  return (
    <div>
      <CustomButton text="기본 버튼" />
      <CustomButton text="파란색 버튼" backgroundColor="#007bff" />
      <CustomButton text="빨간색 버튼" backgroundColor="#ff0000" textColor="#fff" />
      <CustomButton text="큰 버튼" fontSize="20px" />
    </div>
  );
};

export default App;

장점

스타일드 컴포넌트를 사용하는 것에는 여러 가지 장점이 있습니다.

캡슐화된 스타일링: 각 컴포넌트의 스타일은 해당 컴포넌트 안에 캡슐화되므로, 글로벌 스코프에서 스타일 충돌을 걱정할 필요가 없습니다.
동적 스타일링: 프롭스(props)를 활용하여 컴포넌트의 스타일을 동적으로 변경할 수 있습니다.
미리 정의된 스타일: 재사용 가능한 스타일 요소를 미리 정의하고 컴포넌트에서 쉽게 사용할 수 있습니다.

마무리

스타일드 컴포넌트는 리액트 애플리케이션의 스타일링을 효과적으로 해결할 수 있는 방법 중 하나입니다. 간결한 문법과 강력한 기능을 통해 개발자들은 스타일링에 더 집중할 수 있습니다.

profile
프론트엔드 공부중

0개의 댓글