React에서 스타일이 지정된 구성 요소를 사용하는 방법

React에서 스타일이 지정된 구성 요소를 사용하는 방법

React를 사용하면 스타일을 전역 CSS 파일에 저장하는 것이 일반적입니다. 이로 인해 특히 대규모 프로젝트에서 작업할 때 특정 구성 요소의 스타일을 찾기가 어려울 수 있습니다. 스타일이 지정된 구성 요소를 사용하면 구성 요소와 동일한 파일에 있기 때문에 특정 구성 요소에 대한 스타일을 쉽게 찾을 수 있습니다.

React 애플리케이션에서 스타일이 지정된 구성 요소를 설정하고 통합하는 방법을 살펴보겠습니다.

스타일 구성 요소 라이브러리 설치

터미널에서 다음 명령을 실행하여 styled-component를 설치할 수 있습니다.

npm i styled-components

원사를 사용하여 styled-component를 설치하려면 다음을 실행하십시오.

yarn add styled-components

스타일이 지정된 구성 요소 만들기

스타일 컴포넌트는 스타일이 있는 표준 React 컴포넌트와 같습니다. 올바른 사용을 위해 고려해야 할 중요한 스타일 구성 요소에는 다양한 장단점이 있습니다.

일반적인 구문은 다음과 같습니다.

import styled from "styled-components";

const ComponentName = styled.DOMElementTag`
    cssProperty: cssValue
`

여기에서는 styled-component 라이브러리 에서 styled를 가져옵니다 . styled 함수는 JavaScript 코드를 실제 CSS 변환하는 내부 메서드입니다. ComponentName 스타일이 지정된 구성 요소의 이름입니다. DOMElementTag div, span, 버튼 등과 같이 스타일을 지정하려는 HTML/JSX 요소입니다.

스타일 구성 요소를 사용하여 스타일 버튼을 만들려면 먼저 버튼 요소가 포함된 React 구성 요소를 만듭니다.

이렇게:

import React from "react";

function Button() {
    return (
        <button>Welcome!!!</button>
    )
}

이제 styled-components를 사용하여 버튼 스타일을 만들 수 있습니다.

import styled from "styled-components";

const StyledButton = styled.button`
    padding: 1rem 0.8rem;
    border-radius: 15px;
    background-color: gray;
    color: #FFFFFF;
    font-size: 15px;
`

모든 것을 종합하면 버튼 태그를 StyledButton 구성 요소 로 교체해야 합니다 .

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

const StyledButton = styled.button`
    padding: 1rem 0.8rem;
    border-radius: 15px;
    background-color: gray;
    color: #FFFFFF;
    font-size: 15px;
`


function Button() {
    return (
        <StyledButton>Welcome!!!</StyledButton>
    )
}

중첩 스타일

스타일이 지정된 구성 요소로 작업할 때 스타일을 중첩할 수도 있습니다. 중첩 스타일 컴포넌트는 SASS/SCSS Extension Language를 사용하는 것과 비슷합니다. 구성 요소에 여러 요소 태그가 포함되어 있고 각 태그의 스타일을 개별적으로 지정하려는 경우 스타일을 중첩할 수 있습니다.

예를 들어:

import React from 'react';

function App() {
    return (
        <div>
            <h1>Styled Components</h1>
            <p>Welcome to styled-components</p>
        </div>
    )
}

이 코드는 h1 요소와 p 요소를 포함하는 구성 요소를 만듭니다 .

스타일이 지정된 구성 요소의 중첩 스타일 지정 기능을 사용하여 이러한 요소의 스타일을 지정할 수 있습니다.

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

const StyledApp = styled.div`
    color: #333333;
    text-align: center;

    h1 {
        font-size: 32px;
        font-style: italic;
        font-weight: bold;
        letter-spacing: 1.2rem;
        text-transform: uppercase;
    }

    p {
        margin-block-start: 1rem;
        font-size: 18px;
    }
`

function App() {
    return (
        <StyledApp>
            <h1>Styled Components</h1>
            <p>Welcome to styled-components</p>
        </StyledApp>
    )
}

이 코드는 스타일이 지정된 구성 요소를 사용하고 h1p 태그 에 대한 스타일을 중첩합니다 .

변수 생성 및 사용

변수를 생성하는 기능은 styled-components 라이브러리의 놀라운 기능입니다. 이 기능은 JavaScript 변수를 사용하여 스타일을 결정할 수 있는 동적 스타일을 부여합니다.

styled-component에서 변수를 사용하려면 변수를 만들고 여기에 CSS 속성 값을 할당합니다. 그런 다음 해당 변수를 CSS에서 직접 사용할 수 있습니다. 예를 들면 다음과 같습니다.

import styled from "styled-components";

const MainColor = "red";

const Heading = styled.h1`
    color: ${MainColor};
`;

function App() {
    return (
        <>
            <Heading>Hello World!</Heading>
        </>
    );
}

위의 코드 블록에서 ” Hello World! ”는 빨간색으로 표시됩니다.

이 예제는 단순히 스타일이 지정된 구성 요소와 함께 템플릿 리터럴의 표준 JavaScript 변수를 사용합니다. CSS 변수를 사용하는 것과는 다른 접근 방식입니다.

스타일 확장

스타일이 지정된 구성 요소를 만든 후 구성 요소를 활용합니다. 상황에 따라 미묘한 차이를 만들거나 더 많은 스타일을 추가할 수 있습니다. 이런 경우 스타일을 확장할 수 있습니다.

스타일을 확장하려면 styled() 생성자 에서 스타일 구성 요소를 래핑한 다음 추가 스타일을 포함합니다.

이 예제에서 PrimaryButton 구성 요소는 Button 구성 요소의 스타일을 상속하고 다른 배경색인 파란색을 추가합니다.

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

const Button = styled.button`
    padding: 1rem 0.8rem;
    border-radius: 15px;
    background-color: gray;
    color: #FFFFFF;
    font-size: 15px;
`

const PrimaryButton = styled(Button)`
    background-color: blue;
`

function App() {
    return (
        <Button>Welcome</Button>
        <PrimaryButton>Hello There!</PrimaryButton>
    )
}

를 소품 으로 사용하여 스타일이 지정된 구성 요소가 렌더링하는 태그를 변경할 수도 있습니다 .

as 소품 사용하면 스타일이 지정된 구성 요소가 렌더링되는 기본 HTML/JSX 요소를 지정할 수 있습니다.

예를 들어:

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

const Button = styled.button`
    padding: 1rem 0.8rem;
    border-radius: 15px;
    background-color: gray;
    color: #FFFFFF;
    font-size: 15px;
`


function App() {
    return (
        <Button as='a' href='#'>Welcome</Button>
    )
}

이 코드는 버튼 구성 요소를 요소 로 렌더링하여 href 속성 을 ‘#’으로 설정합니다 .

전역 스타일 만들기

스타일이 지정된 구성 요소는 일반적으로 구성 요소로 범위가 지정되므로 응용 프로그램 전체의 스타일을 지정하는 방법이 궁금할 수 있습니다. 전역 스타일 지정을 사용하여 응용 프로그램의 스타일을 지정할 수 있습니다.

Styled-Components는 스타일을 전역적으로 선언할 수 있는 createGlobalStyle 함수를 제공합니다. createGlobalStyle은 구성 요소 범위 지정 스타일의 제약을 제거하고 모든 구성 요소에 적용되는 스타일을 선언할 수 있도록 합니다.

전역 스타일을 만들려면 createGlobalStyle 함수를 가져오고 필요한 스타일을 선언합니다.

예를 들어:

import {createGlobalStyle} from 'styled-components';

const GlobalStyles = createGlobalStyle`
    @import url('https://fonts.googleapis.com/css2?family=Montserrat&display=swap');

    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    body {
        background-color: #343434;
        font-size: 15px;
        color: #FFFFFF;
        font-family: 'Montserrat', sans-serif;
    }
`

export default GlobalStyles;

그런 다음 GlobalStyles 구성 요소를 앱 구성 요소로 가져 와서 렌더링합니다. 앱 구성요소에서 GlobalStyles 구성요소를 렌더링하면 애플리케이션에 스타일이 적용됩니다.

이렇게:

import React from 'react';
import GlobalStyles from './Global';

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

스타일이 지정된 구성 요소에 대한 추가 정보

React 애플리케이션에서 styled-component를 설정, 설치 및 사용하는 방법을 배웠습니다. styled-components 라이브러리는 React 애플리케이션의 스타일을 지정하는 효율적인 방법입니다. 스타일링 및 동적 스타일링의 유연성을 허용하는 많은 유용한 기능을 제공합니다.

애니메이션과 같은 스타일이 지정된 구성 요소에는 더 많은 것이 있으며 React는 그 외에도 배울 것이 많은 큰 프레임워크입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다