리액트 컴포넌트에서 다루는 데이터는 props 와 state로 구성된다.
props는 직접 수정이 불가능 한 반면 state 는 컴포넌트 내부에서 선언하며 내부에서 값을 변경 할 수 있다.
: 스테이트란 해당 컴포넌트에서 사용되어지는 값의 상태를 의미한다.
컴포넌트 내에서 변수처럼 사용되어지며 이 스테이트 값이 변경되면 리액트는 해당 컴포넌트를 재랜더링하게 된다.
즉, 스테이트값의 변화에 따라 화면이 바뀐다고 생각하면 되겠죠?
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
name: '',
}
}
}
: state는 변수를 변경하는 방법처럼 변경할 수 없고 그 내부 함수로만 변경이 가능하다.
state = 'ash'
this.setState({
name: 'ash'
})
: state는 값으로 사용할 수 있다.
this.state.name
: 프롭스란 부모 컴포넌트에서 자식 컴포넌트로 넘겨받는 통로라고 할 수 있다.
여기에는 함수도 넘겨줄 수 있고 스테이트도 넘겨줄 수 있다.
: 부모 컴포넌트를 살펴보자.
<Component title={this.state.name} />
: 자식 컴포넌트를 살펴보자.
console.log(this.props.titls)