[React] Styled-Component

JIOO·2022년 4월 21일
0

React

목록 보기
8/18
post-thumbnail

👩‍🎓 설치방법

npm i styled-components

👩‍🎓 불러오기

import styled from "styled-components";

👩‍🎓 사용법

styled.div `css`
// styled될 컴포넌트의 형태(이걸 쓰면 무조건 div이다)를 정의 해줌
// 백틱 안에 css 문법

👩‍🎓 이미 디자인된 styled 추가로 보완하는 법

const SimpleButton = styled.button `
 color : white,
 background :green
`
const LargeButton = styled(SimpleButton)`
 font-size :50px;
`
// styled.이 아니라 styled안에 기존 변수를 넣음

styled(컴포넌트명) 을 인자로 넣어주면 인자의 styled를 유지하면서 스타일을 더 넣을 수 있다.

Props에 따라 스타일 바뀌게 하기

예시) 버튼 Component를 만들기

import React from "react";
import styled from "styled-components";

const StyledButton = styled.button`
  padding: 0.375rem 0.75rem;
  border-radius: 0.25rem;
  font-size: 1rem;
  line-height: 1.5;
  border: 1px solid lightgray;

  color: ${(props) => props.color || "gray"};
  background: ${(props) => props.background || "white"};
`;

function Button({ color, background }) {
  return (
    <StyledButton color={color} background={background}>
      버튼
    </StyledButton>
  );
}

export default Button;

APP에서 버튼 컴포넌트 사용하기

import "./App.css";
import Button from "./Button";

function App() {
  return (
    <div className="App">
      <Button color="green" background="pink" />
    </div>
    // 위 선언된 StyledButton가 포함된 button을 사용 한 것
  );
}

export default App;

앱에서 버튼 컴포넌트를 선언 후 color에 props를 주면 Button 컴포넌트에서 props를
받아 styled에 인자를 채워주게 됨

props로 여러 스타일 수정 하기

버튼이 있다는 가정 styled-component에 primary 를 넣어주면
버튼에 styled-component basic.css의 primary 스타일이 부여됨

👩‍🎓 이때 button 컴포넌트의 Styled 설정에서

  ${(props) =>
    props.primary &&
    css`
      color: white;
      background: navy;
      border-color: navy;
    `} 
(props로 primary가 넘어 왔을 때) && css ` ` 
//css는 styled-components 내부 라이브러리

이렇게 설정 값 전체를 설정 할 수 있음

👩‍🎓 물론

function Button({...props}){
 return <StyledButton {...props}/>
}

이렇게 jsx에도 넣어줘야 props에 반응해서 인식하니 해줘야함

profile
프론트엔드가 좋은 웹쟁이

0개의 댓글