[React] "구조분해할당"이라고 들어보셨나요??

2025. 2. 10. 18:12·React
728x90

JavaScript ES6 문법을 접하면서 구조분해할당 개념이란 것을 정확히 이해하게 되었다.

React를 사용하는 프론트엔드 개발자라면 이 문법이 얼마나 필요한지 얼마나 컴포넌트를 다루는 데에 있어서 편리한지 알지 않을까?

하지만 이 개념 자체를 정확히 이해하지 않고 사용하는 개발자들이 많다고 생각이 든다.

그래서 오늘은 이 개념에 대해 정리해보고자 한다.

 


구조분해할당이란?

구조분해할당은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이며,

이 문법을 사용하면 코드를 더 간결하고 가독성 있게 작성할 수 있다는 장점이 있다.

React에서는 특히 props나 state를 다룰 때 매우 유용하게 사용된다!

 

아래 예시코드를 살펴보자.

const student = {
    name: '김철수',
    age: 20,
    grade: 'A'
};

// 구조분해할당 사용
const { name, age, grade } = student;
console.log(name);  // '김철수'
console.log(age);   // 20
console.log(grade); // 'A'

이 코드에서는 student 객체의 속성들을 개별 변수로 분리했다.

이렇게 하면 student.name, student.age와 같이 매번 객체명을 반복해서 작성할 필요가 없어진다.


React에서는 어떻게 활용될까?

1. 컴포넌트 props 구조분해할당

// 구조분해할당 사용 전
function UserProfile(props) {
    return (
        <div>
            <h2>{props.username}</h2>
            <p>{props.email}</p>
        </div>
    );
}

// 구조분해할당 사용 후
function UserProfile({ username, email }) {
    return (
        <div>
            <h2>{username}</h2>
            <p>{email}</p>
        </div>
    );
}

이 예시에서는 props 객체를 구조분해할당하여 코드를 더 간결하게 만들었다.

props.username 대신 바로 username을 사용할 수 있어 가독성 향상에 도움이 되는 것을 볼 수 있다!!!

 

2. useState 구조분해할당

import { useState } from 'react';

function Counter() {
    const [count, setCount] = useState(0);
    
    return (
        <button onClick={() => setCount(count + 1)}>
            카운트: {count}
        </button>
    );
}

useState 훅을 사용할 때도 구조분해할당이 사용된다.

배열의 첫 번째 요소는 상태 값이고, 두 번째 요소는 그 상태를 변경하는 함수다.

 

3. 기본값 설정

구조분해할당을 사용할 때 기본값을 설정할 수 있다는 점도 매우 유용하다.

function UserInfo({ name = '익명', age = 0 }) {
    return (
        <div>
            <p>이름: {name}</p>
            <p>나이: {age}</p>
        </div>
    );
}

이 코드에서는 props로 name이나 age가 전달되지 않았을 때 사용할 기본값을 지정했다.

(이를 통해 컴포넌트의 안정성을 높일 수 있다!)

 

4. 중첩된 객체의 구조분해할당

const user = {
    info: {
        name: '김철수',
        address: {
            city: '서울',
            district: '강남구'
        }
    }
};

const { info: { name, address: { city } } } = user;
console.log(name);  // '김철수'
console.log(city);  // '서울'

중첩된 객체에서도 구조분해할당을 사용할 수 있다.

이는 복잡한 데이터 구조를 다룰 때 특히 유용하다!

728x90

'React' 카테고리의 다른 글

[React] 디바운싱을 활용한 검색 최적화  (1) 2025.02.12
[React] Lucide-react로 아이콘 쉽게 쓰기 🤩  (0) 2025.02.11
[React] 웹 페이지 프린트 기능 구현하기 🖨️  (0) 2025.02.09
[React] useRef란 무엇일까? 🪝  (0) 2025.02.08
[React] 프론트엔드에서 페이지네이션 구현하기 🗒️  (1) 2025.02.07
'React' 카테고리의 다른 글
  • [React] 디바운싱을 활용한 검색 최적화
  • [React] Lucide-react로 아이콘 쉽게 쓰기 🤩
  • [React] 웹 페이지 프린트 기능 구현하기 🖨️
  • [React] useRef란 무엇일까? 🪝
프론트 개발자 김현중
프론트 개발자 김현중
👋반갑습니다 저는 나눔을 실천하는 개발자 꿈나무 김현중입니다⌨️🚀
  • 프론트 개발자 김현중
    삥구의 개발블로그
    프론트 개발자 김현중
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • 알고리즘 (4)
      • Swift (3)
      • 컴퓨터네트워크 (1)
      • React (38)
      • Docker (1)
      • SQL (8)
      • Database (2)
      • 배포 (1)
      • Spring (9)
      • TypeScript (5)
      • Next.js (12)
      • Git (1)
      • 회고 (1)
      • 컴퓨터그래픽스 (2)
      • Python (1)
      • Brew (1)
      • LangChain (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    코딩테스트
    백준
    ReactHooks
    react
    database
    appRouter
    webdevelopment
    springboot
    java
    프론트엔드
    Next.js
    nextjs
    Backend
    웹개발
    MySQL
    frontend
    typescript
    데이터베이스
    javascript
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.1
프론트 개발자 김현중
[React] "구조분해할당"이라고 들어보셨나요??
상단으로

티스토리툴바