components styled 개념정리

FrontEnd

리액트로 프로젝트를 하면서 CSS를 사용할 경우

여러가지 방법으로 사용할 수 있다

흔히 사용하는 방법으로는 css파일을 만들고 그 파일을 import해서 사용하는데

리액트에서 제공하는 방식중에 더욱 편리하고

유지보수하기에 좋으면서 js파일과 css파일을 함께 관리 할 수 있는 방법이 있다

그게 바로 components styled 라는 것인데

우선 이것을 import하기 위해서는 설치를 해줘야한다

구글 검색창에 components styled 라고 적어준 후

해당 사이트로 들어가서 documentation을 클릭하면

여러가지 메뉴가 보이는데 그중에서 Installation을 누르면 된다

나는 npm이 아닌 yarn을 사용함으로 yarn add styled-components 라는

명령어를 cd 로 해당 폴더를 지정해주고 복사붙여넣기 해주면

자동으로 패키지가 설치된다

설치가 끝난 후 pakage.json에 들어가서 설치가 정상적으로 되었는지 확인 할 수 있다

pakage.json은 알파벳순으로 정렬되어 있으니 이점에 참고해서 찾아보거나 커맨드+f로
검색해보면 된다

자 그러면 어떻게 사용하는지 코드를 통해 한번 알아보자

우선 사용하고자 하는 js파일에 와서 상단에 import를 해주는데

패키지가 설치되었다면 자동완성으로 잘 나올 것이다

import styled from "styled-components";

이렇게 작성해주고

헬로 라는 글자를 작성하는데 이 문자열에 css효과를 줘보자

원래라면 .css 파일에 원하는 css를 주고

js파일에서 임포트해서 사용하지만

이번에는 다른 방식으로 사용할 것이다

import './App.css';
import styled from "styled-components";

const Title = styled.h1
`
  font-size: 1.5em;
  text-align: center;
  color: palevioletred;
`
;


function App() {

    return(

    <div>
        <Title>헬로</Title>
    </div>

  );

}
export default App;

자 위 코드를 보면 const Title 이라고 선언해줬고

그 안에 원하는 css를 넣어줬는데 이렇게 사용할 경우에는

"" 를 생략하고 편리하게 적을 수 있다

css파일과 거의 동일하기에 더 익숙하고 직관적으로 코드를 짤 수 있는데

다른점은 백틱을 써야한다는 것이다

` ` 

이 두개를 가지고 시작과 끝을 묶어줘야한다

그 사이에 내가 원하는 코드를 넣어주고

해당 값을 출력할 때 또 다른점이 있는데

기존방식은 div안에 css 를 넣고자 한다면 style 이라는 것을 적어주곤했는데

이렇게 사용할경우 const Title이라고 작성한 변수명이 그대로 태그가 되는 것이다

 <Title>헬로</Title> 이런식으로 div가 아닌 Title 그 자체로 감싸줘야한다

이렇게 사용하면 좋은점이 해당 코드 자체를 임포트해서 다른곳에서도 사용할 수 있는데

예를들어 MyCss.js라는 파일을 만들고

import styled from "styled-components";

const Title = styled.h1`

font-size: 1.5em;
text-align: center;
color: palevioletred;
`;

export {Title};

이렇게 작성해주고

다른 곳으로가서

<Title>하하하</Title>

이렇게 작성해주면

자동으로 import가 되면서

해당 js파일에 있는 css속성값을 그대로 쓸 수 있다

끝으로 스타일 컴포넌트를 사용할 경우 변수명 지어주는 것에 신경을 써야한다

그렇지 않으면 가독성이 떨어지고 이게뭔지 알 수 없기 때문에

일단 가장 보편적인 방법을 따르는게 좋다고 생각하고

나같은 경우 나중에 또 바뀔 수 있지만

StyledBookingDiv 이런식으로

스타일변수이고 핵심 주제는 Booking이고 Div로 만들어졌다

라는 의미로 앞에는 Styled 끝에는 Div 어떤 형태인지

가운데에는 핵심 내용을 한번에 알 수 있게 적어줄 생각이다

한가지 더 주의할점은 스타일 컴포넌트는 대문자로 시작해야한다!

'FrontEnd' 카테고리의 다른 글

Styled Component props 패싱 개념정리  (0) 2022.11.16
props 개념정리(변수,함수 passing하기)  (0) 2022.11.16
useRef 개념정리  (0) 2022.11.16
useMemo 개념정리  (0) 2022.11.16
React UseEffect 개념정리  (0) 2022.11.16