본문으로 바로가기

[React] 컴포넌트에 데이터 숨기는 방법

category 공유/React, Next 2024. 6. 24. 20:06

React 컴포넌트에 데이터 숨기는 방법

웹 개발을 하다보면 특정 element에 데이터를 저장하고 싶을 때가 있습니다.
이 경우 HTML5 에서 제공해주는 data-* 를 사용하면 됩니다.

데이터 저장하기

user 정보를 div에 저장하는 방법을 알아보겠습니다.

const userInfo = {
    id: 1,
    name: "John",
    age: 17
}

const User = () => {
    return <div data-user={JSON.stringify(userInfo)}>User</div>
}

위처럼 data-user정보를 저장할 수 있습니다.
이름은 data-**에 원하는 문자열을 입력해주면 됩니다.

데이터 가져오기

데이터를 저장했으면 가져와야 합니다.
가져오는 방법도 간단합니다.

const User = () => {
    return <div data-user={JSON.stringify(userInfo)} onClick={(e) => {
        const dataUser = e.target.getAttribute("data-user");
        const userInfo = JSON.parse(dataUser);
        console.log(userInfo)
    }}>User</div>
}

위처럼 getAttribute 함수를 사용하여 쉽게 가져올 수 있습니다.

data 속성을 알고 있으면 생각보다 유용하게 사용하실 수 있습니다.
장점으로는 내가 원하는 데이터를 원하는 element에 심어둘 수 있다는 것입니다.
단점으로는 해당 데이터의 type을 알 수 없기 떄문에 type checking을 꼭 해주어야 합니다.

data 속성을 많이 사용한 곳을 확인해보고 싶으시면 mui 컴포넌트를 확인하시면 됩니다.
mui 홈페이지에 들어가셔서 F12를 누르시고 마크업 구조를 확인해보시면 됩니다.

참고문헌

• data-attribute

반응형