: 테마나 props를 사용해 스타일을 간편하게 관리할 수 있게 하는 라이브러리
npm install --save styled-components
위 명령어를 터미널에 입력하여 최신 버전으로 설치합니다.
// JSX import styled from "styled-components"; const Title = styled.h1` font-size: 1.5em; color: black; text-align: center; `; function MainPage(props){ return( <Title> 안녕, 리액트! </Title> ); }
styled.태그명``; 형태로 사용합니다.// JSX const Title = styled.h1` font-size: 1.5em; color: ${props => props.color}; text-align: center; `; function MainPage(props){ const { color, setColor } = useState('red'); return( <Title color={color}> 안녕, 리액트! </Title> ); }
map()을 이용해 반복 출력중인 컴포넌트의 스타일링 중 변수로 key값을 사용하려고 시도시 문제 발생
component 작성 부분
// JSX {specStates.map((specCard) => ( <CardBack key={specCard.id}> </CardBack> ))}styled 부분
// JSX const CardBack = styled.div` background-image: url(/images/card${(props)=>props.key}.png); `;
Feat. GPT
React 컴포넌트의 속성 (props)은 key라는 이름의 속성은 예약어로 사용되며, 해당 값은 컴포넌트에서 직접 참조할 수 없습니다. key는 React에서 컴포넌트를 고유하게 식별하는 데 사용되는 속성이지만, 컴포넌트 내부에서는 props로 직접 참조할 수 없습니다.
props 추가
// JSX {specStates.map((specCard) => ( <CardBack key={specCard.id} cardId={specCard.id}> </CardBack> ))}추가한 props를 사용
// JSX const CardBack = styled.div` background-image: url(/images/card${(props)=>props.cardId}.png); `;

위 처럼 변수에 따라 스타일링 할 때에 지원하는 더 좋은 기능이 있다.
import styled, { css } from "styled-components"; ~~~ const Title = styled.div` ${props => props.theme.landscapeMode && css` width: 15%; white-space: pre-wrap; `} `
css를 import한 후&&이나 ? : 문법에 css``를 사용하여 작성한다.훨씬 깔끔하고 자동완성도 지원된다.