728x90
728x90
React 컴포넌트의 핵심: props와 state 심층 분석
React 컴포넌트를 개발하다 보면 자주 마주치게 되는 두 가지 개념이 바로 props와 state입니다. 이 둘은 컴포넌트의 데이터를 관리하는 데 있어서 핵심적인 역할을 하며, 올바르게 이해하고 활용하는 것이 효과적인 React 개발을 위한 필수 조건입니다.
props: 부모에서 자식으로 전달되는 데이터
- 정의: props는 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 데 사용되는 일종의 속성입니다. HTML 태그의 속성과 비슷하게 생각할 수 있습니다.
- 특징:
- 읽기 전용: 자식 컴포넌트 내에서는 props의 값을 직접 변경할 수 없습니다.
- 하향식 데이터 흐름: 부모에서 자식으로 한 방향으로만 데이터가 전달됩니다.
- 컴포넌트 간 데이터 공유: 부모 컴포넌트에서 관리하는 데이터를 자식 컴포넌트에서 사용할 수 있도록 합니다.
- 사용 예시:
// 부모 컴포넌트 function Parent() { const name = '홍길동'; return <Child name={name} />; } // 자식 컴포넌트 function Child({ name }) { return <div>안녕하세요, {name}님!</div>; }
728x90
state: 컴포넌트 내부에서 관리되는 데이터
- 정의: state는 컴포넌트 내부에서 관리되는 데이터로, 컴포넌트의 상태를 나타냅니다.
- 특징:
- 변경 가능: 컴포넌트 내부에서 setState 메서드를 사용하여 state의 값을 변경할 수 있습니다.
- 렌더링 재실행: state가 변경되면 해당 컴포넌트와 자식 컴포넌트가 다시 렌더링됩니다.
- 컴포넌트 내부 로직: 사용자 상호 작용, 타이머, 데이터 가져오기 등 컴포넌트 내부에서 발생하는 다양한 동작을 관리하는 데 사용됩니다.
- 사용 예시:
class Counter extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; } handleClick = () => { this.setState({ count: this.state.count + 1 }); }; render() { return ( <div> <p>현재 카운트: {this.state.count}</p> <button onClick={this.handleClick}>증가</button> </div> ); } }
props와 state의 차이점 요약
데이터 흐름 | 부모 -> 자식 | 컴포넌트 내부 |
변경 가능성 | 불가능 | 가능 (setState 사용) |
용도 | 컴포넌트 간 데이터 전달 | 컴포넌트 내부 상태 관리 |
props와 state를 효과적으로 사용하기 위한 팁
- props는 읽기 전용: 자식 컴포넌트에서 props를 직접 수정하려고 하지 마세요.
- state는 최소화: 불필요한 state를 만들지 않고, 꼭 필요한 데이터만 관리하세요.
- Context API 활용: 깊이 중첩된 컴포넌트 계층에서 데이터를 전달해야 할 경우 Context API를 고려해 보세요.
- Redux: 대규모 애플리케이션에서는 상태 관리 라이브러리인 Redux를 사용하여 복잡한 상태를 효율적으로 관리할 수 있습니다.
결론
props와 state는 React 컴포넌트의 데이터 흐름을 이해하는 데 있어서 가장 중요한 개념입니다. 각각의 특징을 정확히 파악하고, 적절하게 사용하면 더욱 유연하고 효율적인 React 애플리케이션을 개발할 수 있습니다.
728x90
728x90
'React.js 를 배워보자 > 2. React.js 기본 개념' 카테고리의 다른 글
이벤트 처리 (0) | 2024.10.01 |
---|---|
렌더링 (0) | 2024.10.01 |
JSX (JavaScript XML) (0) | 2024.10.01 |
라이프 사이클 메서드 (0) | 2024.10.01 |
React 함수형 컴포넌트와 클래스형 컴포넌트 (0) | 2024.10.01 |