React에서 props와 state는 모두 애플리케이션의 상태를 관리하고, 상태 변경에 따라 UI를 업데이트하는 데 사용된다.
props는 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때 사용된다.state는 컴포넌트 내부에서 관리되며, 동적인 상태 변화를 다룹니다.
props는 부모에서 자식으로 데이터를 전달하는 읽기 전용 속성이다.
state는 컴포넌트 내부에서 변경 가능한 상태를 관리한다.
| Props | State | |
|---|---|---|
| 개념 | 부모→자식 컴포넌트로 전달되는 데이터 | 컴포넌트 내부에서 관리되는 데이터 |
| 수정 여부 | 변경 불가(읽기 전용) | 변경 가능(setState 사용) |
| 용도 | 데이터 전달, 재사용성 높은 컴포넌트 작성 | 사용자 상호작용, 동적 UI 구현 |
컴포넌트 내부에서 관리되는 상태로, 데이터가 변경되면 해당 컴포넌트와 그 자식 컴포넌트가 리렌더링된다.
// State 사용 예시
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increase</button>
</div>
);
}
useState를 사용하여 state를 초기화하고, setState 함수를 통해 값을 업데이트부모 컴포넌트가 자식 컴포넌트에 데이터를 전달할 때 사용된다. props는 읽기 전용이므로 자식 컴포넌트에서 직접 변경할 수 없다.
// Props 사용 예시
function ParentComponent() {
return <ChildComponent message="Hello, world!" />;
}
function ChildComponent(props) {
return <p>{props.message}</p>;
}
props.children은 컴포넌트 태그 사이에 전달되는 내용을 의미합니다.
부모 컴포넌트가 자식 컴포넌트의 내용을 동적으로 삽입할 수 있도록 합니다.
function ParentComponent() {
return (
<Container>
<ChildComponent />
</Container>
);
}
function Container(props) {
return <div className="container">{props.children}</div>;
}
function ChildComponent() {
return <p>Hello, world!</p>;
}