Styled-component란 기존 돔을 만드는 방식인 css, scss 파일을 밖에 두고 태그나 id, class 이름으로 가져와 쓰지 않고, 컴포넌트 이름을 쓰듯 스타일을 지정하는 것이다.
css 파일을 밖에 두지 않고, 컴포넌트 내부에 넣기 때문에 css가 전역으로 중첩되지 않도록 만들어주는 장점이 있다.
npm i styled-components
위 명령어를 사용해 styled-component를 설치한다.
import styled from 'styled-components'
styled-component를 사용할 곳에 import해준다.
const Box = styled.div`
background: #ddd;
padding: 20px;
`;
const YelloBtn = styled.button`
background: ${(props) => props.bg};
color: ${(props) => props.bg == "blue" ? "white" : '#000'};
padding: 10px;
`;
const NewBtn = styled.button(YelloBtn);
<Box>
<YelloBtn bg="blue">버튼</YelloBtn>
<YelloBtn bg="orange">버튼</YelloBtn>
</Box>
styled.태그명
을 지정 후 백틱
기호를 사용해서 css 속성을 입력해준다.props
문법으로 변경 가능하다.전역으로도 css를 정의할 수있다.
//theme.js
const theme = {
successColor : white;
dangerColor : red;
}
export default theme
import React, { Component } from "react";
import styled, { ThemeProvider } from "styled-components";
import theme from "./theme";
class App extends Component {
render() {
return (
<ThemeProvider theme={theme}>
<Container>...</Container>
</ThemeProvider>
);
}
}
<style>
태그에 넣어주기 때문에 페이지 로딩 시간이 단축된다.