junior developer :)/React

react_css 파일 분리(styled-component 사용)

ㅁ윤슬ㅁ 2023. 2. 2. 23:09
728x90
반응형

이번 프로젝트를 진행하면서 css는 재사용이 가능한 styled-component를 사용하였다.


그나마도 중복 코드 줄이고 간단하게 작성했다 생각했는데 페이지와 기능이 많아지며 코드의 양이 길어지게 되니 한 파일안에 코드가 기본 300줄 이상,,,엄청나게 늘어나는 문제가 생겼다.

그 때문에 가독성도 떨어지고 편하자고 사용했던 styled component가 더 불편해지기 시작했다.
이 문제에 대해서 선택했던 해결 방안은 styld-component 파일을 분리하는 것이다.


분리 방법

본래 Main.jsx, Login.jsx 파일로만 구성되었던 각각의 폴더에 styled.js 파일을 추가해서 styled-component 코드를 보냈다.

당연히 코드만 옮긴다고 끝나는 건 아니고 ,, import와 export 처리가 필요하다.

styled.js에는 styled를 import 해줘야 하고 각각의 컴포넌트에 export 를 해줘야 한다.

//styled.js

import styled from "styled-components";

export const Main = styled.div`
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 60px 60px 0px;
  min-height: 100vh;
`;

jsx 파일에도 import 를 해줘야 한다.

//main.jsx

import * as S from "./styled";

const a = () => {
	return (
    	<S.Main>
     		<S.LogoFont>
     			<span className="font">FONT</span>
      		</S.LogoFont>
     	</S.Main>
 	)
 }

import 에 as S를 붙여 주는 것은 식별자 충돌을 방지하기 위함이다.
(별칭은 S말고 자유롭게 지정해도 무방)

우리는 파일명을 styled로 통일했고 충돌이 일어날 만큼 파일이 많지 않았기에 크게 상관없지만 파일이 많아지고 변수가 많아지면 어디에선가..충돌이 일어날 수 있기 때문에 그를 방지하는 처리 인 것 같다.

사용할 때는 한 파일에 있을 때처럼 컴포넌트 적용을 해주고 앞에 설정한 S.를 붙여주면 된다.

이렇게 간단한 방법으로 코드를 분리하니 가독성도 훨씬 좋아지고 작업 환경도 좋아진 것 같다.
공부를 계속 이어나갈 수록 코드 최적화에 대한 고민이 많아지고 중요성도 깨닫고 있는 중인데 component를 분리하는 이 방법도 최적화에 좋은 방식중에 하나인 것 같다 :)


참고

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/export

728x90
반응형