React コンポーネントは、関数 (React.FC<>) またはクラス (React.Component を継承) として定義できます。 1. React.FC<>1. React.FC は関数コンポーネントであり、TypeScript で使用されるジェネリックです。FC は FunctionComponent の略です。実際、React.FC は React.FunctionComponent と記述できます。 const アプリ: React.FunctionComponent<{ message: string }> = ({ message }) => ( <div>{メッセージ}</div> ); 2. React.FC には PropsWithChildren ジェネリックが含まれているため、props.children の型を明示的に宣言する必要はありません。 React.FC<> は戻り値の型について明示的ですが、通常の関数バージョンは暗黙的です (そうでない場合は追加の注釈が必要になります)。 3. React.FC は、静的プロパティの型チェックと自動補完を提供します: displayName、propTypes、defaultProps (注: React.FC と組み合わせて defaultProps を使用すると、いくつか問題が発生します)。 4. React.FC を使用して React コンポーネントを記述する場合、setState は使用できません。代わりに、useState() や useEffect などの Hook API を使用します。 例 (ここではデモンストレーションのために Ali の Ant Desgin Pro フレームワークが使用されています): const SampleModel: React.FC<{}> = () =>{ //React.FC<> は、Typescript で使用される汎用型です。const [createModalVisible, handleModalVisible] = useState<boolean>(false); 戻る { ** モーダル ボックスをトリガー **/ <Button style={{fontSize:'25px'}} onClick={()=>handleModalVisible(true)} >例</Button> {/** モーダル ボックス コンポーネント **/ <Model onCancel={() => handleModalVisible(false)} ModalVisible={createModalVisible} /> } 2. クラスxxはReact.Componentを拡張しますクラスコンポーネントを定義する場合は、React.Component を継承する必要があります。 React.Component はクラス コンポーネントです。TypeScript では、React.Component はジェネリック型 (別名 React.Component<PropType, StateType>) なので、(オプションの) prop および state 型パラメータを指定します。 例 (ここではデモンストレーションのために Ali の Ant Desgin Pro フレームワークが使用されています): クラスSampleModelはReact.Componentを拡張します{ 状態 = { 作成モーダル表示:false、 }; handleModalVisible =(cVisible:boolean)=>{ this.setState({createModalVisible:cVisible}); }; 戻る { ** モーダル ボックスをトリガー **/ <Button onClick={()=>this.handleModalVisible(true)} >例</Button> {/** モーダル ボックス コンポーネント **/ <Model onCancel={() => handleModalVisible(false)} ModalVisible={this.state.createModalVisible} /> } ps: 簡単に言うと、どのコンポーネント タイプを使用するかわからない場合は、React.FC を使用します。 これで、React での React.FC と React.Component の使用に関するこの記事は終了です。React での React.FC と React.Component に関するその他のコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)
先ほど、適応幅と高さが1:1の正方形を作成する方法について説明しました。 https://www.j...
MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...
序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...
<br />私の仕事で使用しているアノテーションの書き方の基準をまとめました。技術的な内...
Nginxはまず、設定ファイル内のどのserver{}ブロックを処理に使用するかを決定します。次のs...
目次1. 接続管理2. オプティマイザレベルでの改善3. 機能の改善4. パフォーマンススキーマの最...
目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...
CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...
この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...
MySQL の多くのテーブルには、NULL が列のデフォルト属性であるため、アプリケーションが NU...
セルデルとは何かuserdel は、ユーザーを削除するための低レベルのツールです。 Debian で...
まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...
1. 何ですかコンポーネント間の通信は、次の 2 つの単語に分けることができます。コンポーネントコ...
この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...
今日は、さまざまなブラウザでのデフォルト要素のマージン値が何であるかという問題について説明しました。...