개발자

styled-components props 사용 시 prefix ($)

2024년 04월 10일조회 78

리액트 프로젝트를 진행하고 있고, styled-components 을 사용해 스타일링하고 있습니다. 저번 프로젝트에는 뜨지 않았던 prefix ($)를 붙이라는 warning 메세지가 뜨는데 $ 를 붙이는 것에 대해서 어떻게 생각하시나요? 주니어 개발자라 동향을 따라가는 게 좋을 것 같아 질문 남깁니다...!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

KKamJang님의 프로필 사진

현재 사용하고 계시는 코드와 변경하고자 하는 코드를 예시로 올려주시면 좋을 것 같아요! :)

남 재민님의 프로필 사진

$를 붙이라는 워닝이 뜬다는거보면 props를 html요소에 직접적으로 전달하고 계신 것 같아보이는데요. 혹시 그렇다면 컴포넌트에 필요한 props만 넘기시고, html요소에 props를 넘기고 싶으시다면 그 부분만 $를 붙여서 넘기시면 될 것 같습니다. 예)<Component props1={} /> Component.tsx <div $innerprops={props => props.props1}>

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 04월 10일

styled-components 라이브러리는 최근에 자체 내부 동작을 개선하기 위해 "$" 접두사를 도입했습니다. 이런 문자를 사용하면, 외부로서 노출되지 않는(as in, not passed down) props를 styled-components에 전달할 수 있습니다. 예시로: ```jsx // 기존의 방법 const Button = styled.button` color: ${props => props.primary ? 'palevioletred' : 'black'}; `; ``` 위 코드에서 `primary` prop은 실제 DOM 요소인 button에게까지 전달됩니다. 이렇게 되면 React DevTools에서 확인할 때 원치 않는 prop을 볼 수 있어 헷갈릴 수 있고, HTML validation 규칙을 위반할 가능성도 있습니다. ```jsx // $ 접두사 사용 시 const Button = styled.button` color: ${props => props.$primary ? 'palevioletred' : 'black'}; `; ``` 위처럼 `$` 접두사를 사용하면 `primary` prop은 styled-components에서만 관리되며 실제 DOM 요소에는 전달되지 않습니다. 따라서 코드가 조금 더 깔끔해집니다. 살펴보시다시피 `$` 접두사의 주된 장점은 사실상 "국내 사용"된 prop들을 실제 DOM 요소에게 전달하지 않아 안전하게 만드는 것입니다. 그러나, 현재로서는 이것이 스타일링에 직접적인 영향을 미치지는 않습니다. 적용 여부는 각 팀이나 개발자의 선택에 따라 달라질 수 있습니다. 이에 대해서 공식 문서를 참조하거나 팀 내에서 코드 리뷰를 통해 결정하는 것이 좋을 것 같습니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!