LoginSignup
3
3

More than 5 years have passed since last update.

reactサンプルコード

Posted at
1 / 2

➀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")
);

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3