카테고리 없음

styled component

개발자doc 2024. 8. 19. 21:38
목차
1. styled components?
2. css는 사용하지 않을까?
3.어떻게 사용하지?
1. styled components?
  • css파일이 아닌 js 문법을 통해 컴포넌트에 스타일을 적용할 수 있게 하는 라이브러리

기존 html에서 요소에 스타일을 줄 때 스타일 태그를 이용하거나 스타일이 적용된 클래스를 필요한 요소에 부여하는 방법들을 사용하였다. react에서 전통적인 방법을 사용하기도 하지만 . styled components 모듈을 통해  스타일이 적용된 단일 요소를 컴포넌트로 만들어 사용하는 방법을 이용하기도 한다. 왜 사용하는지 장점과 사용하는 방법을 알아보도록 하자.

 

장점

1 ) 클래스 명 중복 제거

▶ css파일로 관리를 할 경우 파일이 많아지면 작업자에 따라 작성된 클래스명이 중복될 수 있고 웹팩을 통한 번들링을 통해 코드가 하나로 합쳐질 경우 우선순위에 의해 원하는 스타일이 적용되지 않을 수 있다. 

 styled component는 고유의 클래스명을 자동으로 지정하도록 하여 버그가 발생하지 않는다.

 

2) 유리한 유지보수

▶ html 요소에 적당한 스타일을 적용하기 위해 css스타일을 찾아보며 필요한 클래스를 찾을 필요가 없다.

 

3) 브라우저 호환

벤더 프리픽스를 자동으로 제공하므로 브라우저 호환성을 신경쓸 필요가 없다.

2. css는 사용하지 않을까?

styled component를 사용하면 css전혀 사용되지 않는건가? 물론 아니다. styled component가 기존 css 방식보다 효율적일 수 있지만 상황에 따라 css을 사용하기도 한다.

 

1) 전역 스타일링이 필요한 경우

▶ 기본적으로 태그에 지정되는 margin이나 padding을 제거하거나 특정 태그들의 기본 스타일을 변경하는 경우 css파일을 사용하여 스타일을 지정하는 것이 더 효율적일 수 있다.

 

2) 반응형 디자인

▶ 다양한 화면의 크기에 맞추어 스타일을 다르게 지정해야할 경우 css파일로 작업하는 것이 더 직관적이고 효율적일 수 있다.

 

3) 성능 최적화가 중요한 경우 

▶ styled component의 경우 빌드를 하면 크기가 커지고 런타임에 js가 직접 스타일을 처리하기에 성능에 영향을 줄 수 있으나 css는 캐시에 저장되어 초기 로딩 속도를 줄일 수 있다.

3.어떻게 사용하지?

1) 모듈 설치

npm을 통해 외부 모듈인 styled components를 설치한다.

npm install styled-components

 

2) 스타일 컴포넌트 생성

스타일 컴포넌트를 생성하는데 설치된 styled-components를 가져와 태그를 생성한다. 이 때 해당 태그에 스타일을 적용할 수 있는데 반드시 백틱(``)안에 적용해야 한다.

import styled from 'styled-components';
const 컴포넌트명 = styled.태그명`
    지정할 스타일
`

//ex) Style.jsx
export const DivComponent = styled.div`
    width:100px;
    height:100px;
    background-color: #000000
`

3) 렌더링

스타일 컴포넌트를 만들었다고 해서 바로 렌더가 되는 것이 아니고 실제 렌더가 될 컴포넌트에 가져와 사용해야 적용된다.

import {DivComponent} from 'Style'

const TestComponent = ()=>{
    return (
        <DivComponent/>
    )
}

 4) 결과

만들어진 컴포넌트의 스타일이 잘 적용되었음을 볼 수 있다.