ReactHooksを試している時に、stateの初期化についていくつかの疑問が出てきました。
以下に同じ処理を行う、書き方が違うコードを載せます。
1つ目
React.js
1class App extends React.Component { 2 constructor(props) { 3 super(props); 4 this.state = { count:0 } 5 } 6 render() { 7 const { count } = this.state; 8 return ( 9 <div> 10 <p> 11 <button onClick={() => this.setState({count: count -1})}>-</button> 12 <b>{count}</b> 13 <button onClick={() => this.setState({count: count +1})}>+</button> 14 </p> 15 </div> 16 ); 17 } 18}
2つ目
React.js
1class App extends React.Component { 2 state = { count:0 }; 3 render() { 4 const { count } = this.state; 5 return ( 6 <div> 7 <p> 8 <button onClick={() => this.setState({count: count -1})}>-</button> 9 <b>{count}</b> 10 <button onClick={() => this.setState({count: count +1})}>+</button> 11 </p> 12 </div> 13 ); 14 } 15}
【1つ目の疑問】
・1つ目と2つ目のコードでは同じstateの初期化を行っているのか?
【2つ目の疑問】
・1つ目のconstructor
内ではthis.stateとthis
が必要であるが、2つ目ではなぜthis
が必要ではないのか。
【3つ目の疑問】
・これらの疑問を調べていた結果class fields proposal
という用語にたどり着きました。
しかし、これがなにを意味しているのかがわかりませんでした。。。ES7で提案された儀式??
疑問が多くて申し訳ありません。。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/23 04:26