관리 메뉴

bright jazz music

생활코딩: styled-components 본문

Framework/ReactJs

생활코딩: styled-components

bright jazz music 2023. 5. 16. 12:30

 

 

1. styled components 설치

 

$npm install styled-components

//오류날 경우
$npm install styled-components@latest

 

2. App.js 작성

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

const SimpleButton = styled.button`
  color:white;
  background-color:green;
`;

const LargeButton = styled(SimpleButton)`
  font-size:50px;
`;

const ReactButton = (props) => {
  console.log('props', props)
  // return <button>{props.children}</button>  //props 전달값의 클래스 네임을 넣어줘야 한다.
  return <button className={props.className}>{props.children}</button>
}

const ReactLargeButton = styled(ReactButton)`
  font-size:50px;
`;

// const PrimaryButton  = styled.button`
//   color: ${function(props){
//     console.log('#props', props)
//     if(props.primary){//true인 경우
//       return 'white';
//     }else{
//       return 'black';
//     }
//   }};
// `;

//아래에 축약한 버전

const PrimaryButton = styled.button`
  color:${(props)=>props.primary ? 'white':'black'};
  //배경색 바꾸기

  background-color: ${(props)=> props.primary ? 'blue':'gray'}
  
`;

function App() {
  return(
    <div>
      <SimpleButton>Simple</SimpleButton>
      <LargeButton>Large</LargeButton>
      <ReactButton>React</ReactButton>
      <ReactLargeButton>React Large</ReactLargeButton>
      <PrimaryButton>Normal</PrimaryButton>
      <PrimaryButton primary>Primary</PrimaryButton>
    </div>
  
  );
}

export default App;

 

 

Comments