npm install styled-components
import styled from 'styled-components'
// 스타일이 입혀진 버튼이 만들어짐
let YellowBtn = styled.button`
background: yellow;
color: black;
padding: 10px;
`
let Box = styled.div`
background: grey;
padding: 20px;
`
// (하나의 컴포넌트 완성)
<Box>
<YellowBtn></YellowBtn>
</Box>
장점
- css 파일을 따로 만들 필요 없음
- 스타일이 다른 js 파일로 오염되지 않음
- 로딩 시간이 짧아짐 (style 태그에 주입이 되는 것이므로)
만약에 오렌지색 버튼이 필요하다면?
기본적으로 component 이기에 props 를 가져와서 사용해주면 된다.
let YellowBtn = styled.button`
background: ${props => props.bg};
color: ${ props => props.bg == 'blue' ? 'white' : 'black'};
padding: 10px;
`
<YellowBtn bg="blue"> 버튼 </YellowBtn>
위와 같이 사용하여 커스터마이징을 할 수 있다. bg에 따라서 흰색/검은색으로 글자색상 변경도 가능하다.
스타일 복사 방법
let NewBtn = styled.button(YellowBtn)`
`
위와 같이 쓰면 YellowBtn 의 속성을 가져와서 추가 속성 설정가능
단점
- JS파일이 매우 복잡해짐
- css와 다를바 없네..
- 협업시 css 담당의 숙련도 이슈
도입여부는 잘 생각해보자