styled-components $ prefix로 커스텀 prop 다루기
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

styled-components에서 $ prefix로 커스텀 prop 다루기

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • *React + styled-components 개발자**
  • 난이도: 초급~중급 (커스텀 prop 사용 경험이 있는 개발자에게 유용)

핵심 요약

  • $ prefix를 사용하면 커스텀 prop이 DOM으로 전달되지 않아 React 경고를 방지
  • boolean, string, number 등 모든 타입의 커스텀 prop에 $ prefix 적용 가능
  • 카멜케이스(isSelected)는 DOM 전달 X, 소문자(isselected)는 custom attribute로 간주되어 경고 발생

섹션별 세부 요약

1. 커스텀 prop 전달 시 발생하는 문제

  • 카멜케이스(isSelected): React가 인식하지 못하는 prop 경고 발생
  • 소문자(isselected): boolean 값 전달 시 "boolean attribute" 경고 발생
  • string, number, object 등 다른 타입도 비슷한 문제 발생 가능

2. `$` prefix를 통한 해결 방법

  • $isSelected, $variant$ prefix 붙이면 DOM 전달 X, 스타일 계산만 수행
  • 예시 코드:

```tsx

```

  • 스타일 적용 시 $ prefix 사용 필수:

```css

background-color: ${({ $isSelected, theme }) => ...};

```

3. `$` prefix의 장점 및 활용 가능성

  • 모든 커스텀 prop(예: $fooBar, $isselected)에 적용 가능
  • React의 DOM 전달 규칙을 우회하여 경고 예방
  • string, number, object 등 타입에 관계없이 안전하게 사용 가능

결론

  • $ prefix 사용을 통해 styled-components의 커스텀 prop 경고를 완전히 방지
  • 모든 커스텀 prop에 $ prefix 적용하여 DOM 전달을 명시적으로 제어
  • React와 styled-components의 협업 규칙을 준수하면서도 유연한 스타일링 가능