갑자기 이럴 경우가 있다

이 사진에 있는 Card를 여러개를 사용하면서 안에 내용은 다르게 넣고 싶을때가 분명 있을 것이다.

즉 이 틀만 재사용을 하고 싶다는 것이다. React는 Component로 구성되어 있다. 하나의 Component를 만들면 그걸 계속 사용해야하는데 이걸 재사용할 수 있을까? 안의 내용은 계속 반복 되면서 사용될 것이다

 

그럼 이걸 어떻게 해결할 수 있을까??

우리는 Children 속성과 Wrap이라는 특성을 활용해서 이걸 재사용 해 볼 것이다.

 

function Card({children}) {
    return (
        <div
            style={{
                backgroundColor: '#0DCADB',
                borderRadius: '20px',
                color: 'black',
                minHeight: '200px',
                maxWidth: '200px',
                margin: '1rem',
                padding: '1rem',
                textAlign: 'center',
            }}
        >
            {children}
        </div>
    );
}

 

일단 위의 사진처럼 간단한 Component를 만들어 보자. 그리곤 Children 파라미터를 받아와서 위와 같이 작성한다.

import React from 'react';

export default function AppCard() {
    return (
        <>
            <Card>
                <p>Card1</p>
            </Card>
            <Card>
                <h1>Card2</h1>
                <p>TestTest</p>
            </Card>
            <Card>
                <h2>Card3</h2>
                <p>TestTestTest</p>
                <span>It's react practice</span>
            </Card>
        </>
    );
}

 

그리과 Card Compoent를 사용할 Component에서 Card 컴포넌트를 불러와서 위와 같이 Card 컴포넌트를 태그처럼 사용한 후에 안에 내용을 입력해준다. 

 

그러면 결과값이 이렇게 나온다.

즉 Component를 태그처럼 사용해서 안의 내용을 Wrap 즉 감싸주고 안의 내용이 감싸준 Component의 children으로 입력되어 나타나게 된다.

 

그래서 이게 재사용하기가 매우 좋다. 큰 틀을 계속 사용할 것 같은 컴포넌트를 위와 같이 작성하고 안의 내용만 바꿔서 보여주고 싶을 때 아주 유용하다.

'React' 카테고리의 다른 글

Redux에 대해서  (0) 2024.06.15
ContextAPI 이용해서 다크모드 사용하기(React)  (2) 2024.01.07
React 상태관리 - UseImmer  (0) 2023.12.27
React 상태관리 - useReducer  (0) 2023.12.26
마우스 따라가는 원형 만들기(React)  (0) 2023.12.24

+ Recent posts