styled-components
컴포넌트를 만들 때 스타일을 미리 주입해서 만들 수 있다.
설치
터미널에 아래 코드를 입력한다.
npm install styled-components
* 현재 version6 이후 해당 명령어 입력 시 문제가 발생하고 있어서, npm install styled-components@5.3.10로 입력했다.
그리고 사용하고 싶은 컴포넌트 맨 위에 import해온다.
import styled from 'styled-components'
사용
import styled from 'styled-components';
let Box = styled.div`
padding : 20px;
color : grey;
`;
let YellowBtn = styled.button`
background : yellow;
color : black;
padding : 10px;
`;
function Detail(){
return (
<div>
<Box>
<YellowBtn>버튼</YellowBtn>
</Box>
</div>
)
}
- styled.div``;
styled 뒤에 태그명을 넣고 백틱 기호 안에 스타일을 넣는다. - 변수 안에 넣어서 사용한다.
응용
props 문법을 이용해서 살짝씩 다르게 만들 수 있으며, 간단한 프로그래밍도 가능하다.
let EventBtn = styled.button`
background: ${ props => props.bg };
color : ${ props => props.bg == 'blue' ? 'white' : 'black' };
padding: 10px;
margin: 20px auto;
border: 1px solid #ddd;
`
function Detail(){
return (
<div>
<EventBtn bg="skyblue">이벤트 바로가기</EventBtn>
<EventBtn bg ="blue">이벤트2 바로가기</EventBtn>
</div>
)
}
기존 스타일을 복사도 할 수 있다.
let EventBtn = styled.button`
background: ${ props => props.bg };
color : ${ props => props.bg == 'blue' ? 'white' : 'black' };
padding: 10px;
margin: 20px auto;
border: 1px solid #ddd;
`
let MoreBtn = styled(EventBtn)`
border: 1px solid #aaa;
`
function Detail(){
return (
<div>
<EventBtn bg="skyblue">이벤트 바로가기</EventBtn>
<EventBtn bg ="blue">이벤트2 바로가기</EventBtn>
<MoreBtn bg ="#ddd">이벤트2 바로가기</MoreBtn>
</div>
)
}
장점
- 스타일이 다른 js 파일에 영향을 끼치지 않는다.
- css 파일을 열지 않아도 js파일 안에서 해결가능하다.
- 페이지 로딩시간이 단축된다.
단점
- js파일이 복잡해진다.
- 중복스타일은 컴포넌트간 import하게 되는데, 그러면 css와 다를 바 없다.
CSS파일 종속시키기
App.js
App.module.css
컴포넌트.module.css로 파일명을 지으면 해당 css파일이 컴포넌트.js파일에 종속된다.
출처 : 코딩애플 https://codingapple.com/
'⚛️ React > 개념' 카테고리의 다른 글
React : useEffect, clean up (실행조건) (0) | 2023.05.23 |
---|---|
React : Lifecycle, useEffect (사용법) (0) | 2023.05.22 |
React : URL 파라미터 (useParams) (0) | 2023.05.22 |
React : 리액트 라우터 (navigate, 404페이지, nested routes, outlet) (0) | 2023.05.19 |
React : 리액트 라우터 (설치, 세팅, 이동버튼) 및 외부라이브러리 사용법 (0) | 2023.05.18 |