Props와 State의 차이 및 렌더링 영향
2023. 11. 15. 23:45ㆍ개발 문서/React
728x90
반응형
React에서 props
와 state
는 둘 다 컴포넌트의 데이터를 관리하는 데 사용되지만, 몇 가지 중요한 차이가 있습니다.
Props:
읽기 전용(Read-Only):
props
는 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 데 사용됩니다. 자식 컴포넌트는props
를 읽기만 할 수 있으며, 직접 수정할 수 없습니다.
외부로부터 전달:
- 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 때 사용됩니다. 외부에서 전달되기 때문에 자식 컴포넌트에 의해 변경되지 않습니다.
함수형 및 클래스형 모두에서 사용:
props
는 함수형 컴포넌트와 클래스형 컴포넌트에서 모두 사용할 수 있습니다.
기본값 설정 가능:
props
에는 기본값을 설정할 수 있습니다.
// 부모 컴포넌트에서
<MyComponent name="John" />
// 자식 컴포넌트에서
const MyComponent = (props) => {
return <p>Hello, {props.name}!</p>;
};
State:
컴포넌트 내부에서 관리:
state
는 컴포넌트의 내부에서 관리되며, 컴포넌트 내부에서 변경이 가능합니다.
setState로 업데이트:
state
는this.setState()
메소드를 통해 업데이트되어야 합니다. 직접적으로this.state
를 변경해서는 안됩니다.
클래스형 컴포넌트에서만 사용:
state
는 주로 클래스형 컴포넌트에서 사용되며, 함수형 컴포넌트에서는useState
훅을 사용하여 상태를 관리합니다.
초기값 설정 필수:
state
를 사용하기 전에 반드시 초기값을 설정해야 합니다.
// 클래스형 컴포넌트에서
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
render() {
return <p>Count: {this.state.count}</p>;
}
}
렌더링 영향:
Props:
props
가 변경되어도 해당 컴포넌트는 다시 렌더링됩니다.shouldComponentUpdate
메소드나React.memo
를 사용하여 성능 최적화를 수행할 수 있습니다.
State:
state
가 변경되면 해당 컴포넌트가 리렌더링됩니다.shouldComponentUpdate
메소드,React.PureComponent
, 혹은 함수형 컴포넌트에서는React.memo
를 사용하여 불필요한 리렌더링을 방지할 수 있습니다.
상태(state
)는 주로 컴포넌트 내부의 동적인 데이터를 관리하고, 속성(props
)은 외부에서 컴포넌트에 데이터를 전달하는 데 사용됩니다. 이들을 올바르게 사용하면 React 컴포넌트를 효과적으로 설계하고 상태 관리를 할 수 있습니다.
'개발 문서 > React' 카테고리의 다른 글
삼항 연산자를 사용한 조건부 렌더링 및 동적 리스트 생성 (0) | 2023.11.16 |
---|---|
React에서의 이벤트 처리 방법 (0) | 2023.11.15 |
컴포넌트의 마운트, 업데이트, 언마운트 단계 이해 (0) | 2023.11.15 |
JSX 문법 및 React 컴포넌트의 개념 (0) | 2023.11.15 |
React 기본 개념과 JSX (0) | 2023.11.15 |