styled-components는 패키지니까 설치가 우선!
npm 이면 위에꺼 한 줄 복사해서 터미널에 입력하시고~ yarn이면 아래꺼 고고
패키기 설치 전 항상 잊지 말아야 할 것: 터미널의 위치가 작성하려는 폴더에 있는지 확인 또 확인!
# with npm
npm install --save styled-components
# with yarn
yarn add styled-components
다음은 JS파일에 import 하기! 아래 코드 파일 젤 위에 써주면 이제부터 styled-components 사용 가능
import styled from 'styled-components'
만약 버튼 태그에 스타일을 넣고 싶으면?
아래처럼 이렇게 백틱(``)안에 써주면 된답니다~
let Btn = styled.button `
css속성 : 값;
`;
그리고 return문 안에 이렇게 써주면 됨
<Btn>나는 스타일 덩어리로부터 속성을 부여받은 버튼이지롱</Btn>
styled-components의 장점 꽤 있음
1. css파일 안열어도 됨
2. 스타일이 다른 JS파일로 오염되지 않음
원래 App.css 파일은 src의 모든 js 파일의 스타일에 연결되있음 (like defalt css?)
App.css의 범위를 App.js에만 한정할 수 있는 방법이 있음! (겁나 쉬움)
App.module.css 라고 바꿔주면 됨
3. 페이지 로딩시간 단축됨! 왜냐면 JS파일이 html에 입력되면서 styled-components는 style 태그로 자연스럽게 인식되서 + 해당 페이지 관련 파일만 로딩하면 되니까(필요없는 css 함께 업로드 안해도 됨) 로딩시간 향상됨!!
어잇쿠야... 잠깐!!!
props... 너 왜 안나오나 했다. 기다리고 있었지
넌 여기서 어떻게 쓸 수 있니?
let Btn = styled.button `
css속성 : ${props => props.a};
`;
만약 노란색 버튼도 쓰고 싶고 빨간색 버튼도 쓰고 싶은데 같은 걸 두개 만들기 싫잖아?
그럴때! props를 써주는 거야.. 바꿀 css 속성의 값을 ${props => props.a} 이렇게 넣어주고 색을 바꿔주고 싶을 때는 return문 안의 태그로 가서 아래처럼 이렇게 써줘. OK?
<Btn a ="(속성 값)" ></Btn>
styled-components의 이점이 또 있음!
JS파일에서 작업하는거라 조건문도 써줄 수 있음
color: ${(props) => props.a == 'blue' ? 'white' : 'black'};
심지어 전에 만들어 놓은 컴포넌트가 맘에 들면 복.붙.도 가능!
let NewBtn = styled.button(Btn)`
css속성 : 값;
`;
물론 단점도 있음!
1. JS 파일이 매.우. 복잡해짐
2. 중복 스타일은 컴포넌트 간 import 할텐데 css와 다를 바 없...
3. 협업할 때 css 담당자의 숙련도가 낮으면 어떻게 할꺼???ㅋㅋㅋㅋ