본문 바로가기

JavaScript/REACT

React State & Props

리액트에서의 propsstate는 컴포넌트의 핵심 개념이다.

이 두 가지를 이해하는 것은 컴포넌트 기반 개발에서 매우 중요하다. 각각의 역할과 사용 방법을 자세히 알아보자.

Props (Properties)

Props는 컴포넌트 외부로부터 전달받는 값이다. 이는 주로 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때 사용된다. Props의 특징을 살펴보면:

  • 불변성: Props는 전달받은 후 내부에서 수정될 수 없다. 이는 리액트의 데이터 흐름이 단방향임을 의미한다.
  • 객체 형태: Props는 자바스크립트 객체 형태로 전달되며, 키-값 쌍을 통해 각 값에 접근할 수 있다.
  • 읽기 전용: 자식 컴포넌트는 props를 직접 변경할 수 없으며, 값을 사용하기 위해 중괄호 {}를 활용하여 접근한다. 예를 들어, props.text로 접근할 수 있다.

예를 들어, Parent 컴포넌트에서 Child 컴포넌트로 text라는 props를 전달하는 경우는 다음과 같다.

function Parent() {
  return (
    <div className="parent">
      <h1>I'm the parent</h1>
      <Child text="Hello from Parent" />
    </div>
  );
}

function Child({ text }) {
  return (
    <div className="child">
      <p>{text}</p>
    </div>
  );
}

State

State는 컴포넌트 내부에서 관리되며 변화할 수 있는 값이다. 컴포넌트의 동적인 상태를 관리하기 위해 사용된다.

  • 변경 가능: State는 useState 훅을 통해 초기값과 함께 선언되고, 상태 변경 함수를 통해 업데이트될 수 있다.
  • 컴포넌트 내부에서 유효: State는 선언된 컴포넌트 내에서만 유효하며, 다른 컴포넌트로 직접 전달되지 않는다. 데이터를 다른 컴포넌트로 전달하기 위해서는 props를 사용해야 한다.

예를 들어, Checkbox 컴포넌트에서 체크박스의 상태를 관리하는 방법은 다음과 같다.

import React, { useState } from 'react';

function Checkbox() {
  const [isChecked, setIsChecked] = useState(false);

  const handleCheckboxChange = () => {
    setIsChecked(!isChecked);
  };

  return (
    <div>
      <input type="checkbox" checked={isChecked} onChange={handleCheckboxChange} />
      <p>{isChecked ? "Checked" : "Unchecked"}</p>
    </div>
  );
}

이 예시에서 Checkbox 컴포넌트는 isChecked라는 state를 사용하여 체크박스의 상태를 관리하며, 사용자의 클릭에 따라 이 상태가 변경된다.

 

결론

리액트에서 props와 state는 각각 불변성과 가변성을 가지며, 컴포넌트의 데이터 흐름과 상태 관리에 핵심적인 역할을 한다. Props는 주로 데이터를 전달하는 데 사용되고, state는 컴포넌트의 내부 상태를 관리하는 데 사용된다. 

 

 

 

 

 

 

'JavaScript > REACT' 카테고리의 다른 글

CDD  (0) 2025.01.17
JSX  (0) 2025.01.17
Custom Component  (0) 2025.01.17
SPA  (1) 2025.01.17
Ajax - 이벤트 훅  (0) 2024.07.25