➀html内のappタグにCounterAppコンポーネントを挿入準備
react.js
ReactDOM.render(
<CounterApp/>,
document.getElementById("app")
);
⓶初期化。constructor(props)、super(props)はおまじないみたいなもん。
react.js
constructor(props){
super(props);
this.state = { count: 0 };
this.countUp=this.countUp.bind(this);
}
⓷this.state.countでthis.state = { count: 0 };を呼び出し、0にセット。onClick={this.CountUp}でCountUpメソッド実行。this.state.hogeは内部から参照するときに使う。(外部からなら、this.props.hoge)
react.js
render (){
return(
<div>
<p>count:{this.state.count}</p>
<button onClick={this.CountUp}>Count Up!</button>
</div>
);
④this.setStateで、初期化したthis.stateの値を「this.state.count + 1」に更新する。
このとき「this.state=this.state.count + 1」のようにthis.stateを直接更新してはいけない。
react.js
CountUp(){
this.setState({ count: this.state.count + 1 });
}
↓全体の流れ
react.js
class CounterApp extends React.Component{
constructor(props){
super(props);
this.state = { count: 0 };
this.countUp=this.countUp.bind(this);
}
CountUp(){
this.setState({ count: this.state.count + 1 });
}
render (){
return(
<div>
<p>count:{this.state.count}</p>
<button onClick={this.CountUp}>Count Up!</button>
</div>
);
}
}
ReactDOM.render(
<CounterApp/>,
document.getElementById("app")
);