2. props & state
2020. 9. 12. 15:51ㆍreact
1. props
리액트의 특징 중 하나는 '단방향 흐름'이다. 단방향 흐름이란 말 그대로 데이터가 한 방향으로 밖에 나갈 수 없다는 것이다.
즉, 데이터는 상속관계에서 상위 컴포넌트에서 하위 컴포넌트로 밖에 줄 수 없다는 말이다. 이때 하위 컴포넌트에 전달할 수 있는 방법이 props이다.
2. state
state는 각 컴포넌트의 '상태'이다. props는 단순히 데이터를 전달한다는 것에 그친다면, state는 해당 컴포넌트의 상태로 가지고 있을 수 있을 수 있다.
예제)
ReactDOM.render(
<App />,
document.getElementById("app")
);
//App
class App extends React.Component {
constructor(props) {
super(props);
//state
this.state = {
color : 'black'
};
}
render() {
return (
<Buttion color={this.state.color}/>
);
}
}
//Button
class Button extends React.Component {
render() {
return (
<p>{this.props.color}</p>
);
}
}
class는 각 컴포넌트를 정의한다. App 컴포넌트안을 보면 this.state가 위에서 설명한 state이다. 여기에는 해당 컴포넌트의 상태를 담을 수 있다. 물론 이는 setState라는 함수를 통해서 변경할 수 있다. 중요한 것은 state모양이 객체와 같아서
this.state.color = ???와 같이 변경하면 error가 발생한다. 그렇기 때문에 setState함수를 사용해야 한다.
다음으로 App 컴포넌트에 render함수 안을보면 Button 컴포넌트가 있고, color= {this.state.color}가 보인다. 이 방식이 상위 컴포넌트가 하위 컴포넌트에게 props를 통해 데이터를 전달하는 방법이다.
Button의 props안에 color라는 키에 this.state.color(= 'black')을 가지게 되고, 이를 전달받아 사용할 수 있게 된다.
'react' 카테고리의 다른 글
1. React, Component & JSX (0) | 2020.09.06 |
---|