React

React 10-1 Styled Component

와라리요 2023. 2. 23. 23:18

1. 선언하기

아래의 패키지를 설치 후 사용할 수 있다.

npm i styled-components

함사 밖에 선언해 컴퍼넌트 선언처럼 사용을한다.

 

기본적은 형태는

import styled from 'styled-components';

const 변수명 = styled.태그`
  css 작성
`;

function App() {
  return (
    <div>
      <변수명 />
    </div>
  );
}

export default App;

 

 


2. css컴퍼넌트에 몇 개 요소만 변경하고 싶을 때

 1. prop스로 선언하여 css에 적용하기

 - JSX에 선언한 컴퍼넌트에 prop를 선언하고 원하는 css에 넣는다.

 

예)

import styled from 'styled-components';

const Box = styled.div`
  width: 100px;
  height: 100px;
  background-color: ${p => p.afterColor};
`

function App() {
  return(
    <Box afterColor="red" /> {/*색만 변경*/}
    <Box afterColor="blue" />
  )
}

 

2. 컴퍼넌트를 복사해 원하는 값만 추가하기

 

예)

//위의 imp와 Box 컴퍼넌트는 동일함
const Circle = styled(Box)`
  border-radius: 50px
`

function App() {
  return(
    <Box afterColor="red" /> {/*네모 모양*/}
    <Circle afterColor="blue" /> {/*동그라미 모양*/}
  )
}

 

 


3. css컴퍼넌트에 테그 값 변경하기

 - JSX에 선언한 컴퍼넌트에 as=""를 추가 후 문자열 안에 원하는 테그 값을 넣으면 변경된다.

 

예)

const Btn = styed.button`
  color: white;
  background-color: black;
  border-radius: 15px
`

function App() {
  return (
    <div>
      <Btn as="a" href="/">Home</a> {/* a테그로 변경됨 */}
      <Btn>LogIn</Btn>
    </div>
  );
}

 

 


4. 미리 속성 값 성정하기

 - 테그 값 뒤에 attrs({ key: value})를 선언하면 된다

 

예)

const Input = styled.input.attrs({ required: true })`
  color: gray;
`

function App() {
  return (
    <div>
      <Input />
      <Input />
    </div>
  )
}