Q&A
JavaScriptを一通り勉強した初学者がreactに挑戦中というレベル感のものです。
ReactのDocumentにて関数コンポーネントとクラスコンポーネントという所で疑問に思ったことを質問させてください。
//関数コンポーネント function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
//クラスコンポーネント class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }
ドキュメントには『上記 2 つのコンポーネントは React の視点からは等価です。』と書かれています。
関数コンポーネントの方はWelcomeのコンストラクタで、クラスコンポーネントはおそらくReact.ComponetのrenderメソッドでJSXをreturnしています。
クラスコンポーネントが下記なら等価な気がしました。
//私が思う等価なクラスコンポーネント class Welcome extends React.Component { constructor() { return <h1>Hello, {this.props.name}</h1>; } }
ReactDOMのLifeサイクルのrenderでJSXを返すようにしているんだろうなというのは理解できます。
質問内容
『クラスコンポーネントと関数コンポーネントがReactの視点からは等価』というのがまだしっくり来ていません。関数コンポーネントはただコンストラクタでJSXをreturnするだけだと思います。
まだドキュメントを読み始めて1日目で、もう少し読み進めれば等価だなと理解できるんでしょうか?
何か私の『上記 2 つのコンポーネントは React の視点からは等価です。』の理解が捗るご説明をして頂けないでしょうか。
大雑把な質問で申し訳ないです。
よろしくお願いいたします。
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。