티스토리 뷰
컴포넌트가 많으면...
- class를 만들어두고 까먹어서 중복으로 또 만들 수 있음
- 다른 컴포넌트에 원하지 않는 스타일이 적용될 수 있음
- CSS 파일이 너무 길어져서 수정이 어려워짐
-> 스타일을 컴포넌트에 바로 입혀서 만들기 => styled-components
0. 우선 설치!
- 터미널에서
npm install styled-components
- 사용할 곳 상단에 import
- 필요한 파일에 스타일링
- 스타일링한 변수로 태그 사용
import styled from 'styled-components';
let BlueBtn = styled.button`
background : skyblue;
color : black;
padding : 10px;
`
let Box = styled.div`
background : grey;
padding : 20px;
`
function Detail(){
return (
<div className="container">
<Box>
<BlueBtn></BlueBtn>
</Box>
...
1. 프롭스 사용해서 스타일링 옵션 변경
import styled from 'styled-components';
let BlueBtn = styled.button`
background : ${ props => props.bg };
color : black;
padding : 10px;
`
function Detail(){
return (
<div className="container">
<BlueBtn bg="blue"></BlueBtn>
...
2. 응용
import styled from 'styled-components';
let BlueBtn = styled.button`
background : ${ props => props.bg };
color : ${ props => props.bg == 'blue' ? 'white' : 'black'};
padding : 10px;
`
function Detail(){
return (
<div className="container">
<BlueBtn bg="blue"></BlueBtn>
<BlueBtn bg="orange"></BlueBtn>
...
결과

3. 기존에 있던 스타일링 복사
let BlueBtn = styled.button`
background : 'white';
color : 'blue';
padding : 10px;
`
// 기존 스타일 복사가능
let NewBtn = styled.button(BlueBtn);
4. App.css 파일이 다른 파일에 간섭하게 싫다면? - App.module.css로 파일명 변경(App.js에 종속됨)
styled-components 장점
- CSS파일 필요없이 JS파일에 스타일링 가능
- 여기서 적은 스타일이 다른 JS파일에 간섭하지 않음
- 페이지 로딩시간 단축 - HTML 파일에 <style>태그로 넣어줘서 CSS파일을 열어보지않음
styled-components 단점
- JS파일이 복잡해짐
- 다른 파일에서 스타일을 사용하려면 컴포넌트간 import를 해야함 -> CSS랑 다른게 없음
- 협업시 CSS 담당의 숙련도 이슈
'Library | Framework > React JS' 카테고리의 다른 글
| [React] AJAX, 서버와 통신 (0) | 2022.11.04 |
|---|---|
| [React] Lifecycle, useEffect (0) | 2022.11.03 |
| [React] map() (0) | 2022.10.26 |
| [React] 동적 UI 만들기(feat. 모달창) (0) | 2022.10.26 |
| [React] Component 컴포넌트 (0) | 2022.10.25 |
댓글
