Styled Components 스타일 상속하기
: 기존에 정의된 컴포넌트의 스타일을 기반으로 새로운 스타일을 추가하거나 수정할 수 있는 기능이다.
예제)
이미 정의된 StyledButton이라는 버튼 컴포넌트의 기본 스타일을 상속받아 좀 더 화려한 버튼인 FancyButton을 만들기
1. StyledButton 예시
import styled from 'styled-components';
export const StyledButton = styled.button`
padding: 10px 20px;
background-color: #4caf50;
color: white;
border-radius: 5px;
border: 1px solid darkgreen;
cursor: pointer;
transition: background-color 0.3s;
&:hover {
background-color: #45a049;
}
`;
2. FancyButton으로 상속받고, 몇 가지 스타일 추가&변경하기
export const FancyButton = styled(StyledButton)`
background-image: linear-gradient(to right, #ff7e67, #ffbd67);
border: none;
`;
- 상속받은 스타일
StyledButton의 모든 스타일' (패딩, 초기 배경색, 글자색, 테두리 둥근 정도, 커서 스타일, 호버 시의 배경색 변경 등)
- 변경된 스타일
배경 이미지: 기본 배경색 대신 linear-gradient를 사용하여 배경에 그라디언트 효과를 주었다.
테두리 제거: border 스타일을 none으로 설정하여 기존의 테두리를 제거한다.
새롭게 만든 FancyButton 컴포넌트 사용법
import React from 'react';
import { FancyButton } from './ButtonStyles';
function App() {
return (
<div>
<FancyButton>Click Me!</FancyButton>
</div>
);
}
export default App;
이처럼 Styled Components를 활용하여 스타일을 상속받는 방식은 기존 코드의 재사용성을 높이고, 스타일 관리의 복잡성을 줄이는 데 큰 도움이 된다.
기존 컴포넌트를 바탕으로 새로운 변형을 쉽게 추가할 수 있기 때문에 대규모 프로젝트의 유지 관리에 특히 유리하다.
'WEB > React' 카테고리의 다른 글
[React] 함수형 컴포넌트와 클래스형 컴포넌트, useEffect는 어떨 때 쓸까? (0) | 2024.05.15 |
---|---|
[React Router - 생활코딩] 中 동적 라우팅 하는 방법 (0) | 2024.05.12 |
[React] styled-components를 이용한 동적 스타일링~~ (0) | 2024.05.06 |
React - useState 사용법 (0) | 2024.04.14 |
React- component와 props (0) | 2024.04.13 |