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. MySQL でグローバル変数を変更するには 2 つの方法があります。方法 1: my.ini ...
clear プロパティを使用してフロートをクリアすることはよくあることであり、clear プロパティ...
ごみ箱機能をオンにすると、削除されたファイルの元のデータをタイムアウトなしで復元できるため、誤って削...
Dockerタグの詳しい説明docker tag コマンドの使い方と、ローカルイメージを daocl...
IE8には複数の互換モードがあります。 IE プラットフォームの設計者である Chris Wilso...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...
この記事では、参考までに、シンプルなナビゲーションバーを実装するためのJavascriptの具体的な...
解決すべき問題主にコンポーネント間のクロスレベル通信用なぜディスパッチとブロードキャストを自分で実装...
最近はWeb2.0という言葉をよく耳にしますが、Web2.0とは何でしょうか? Web 1.0 とど...
VMware の準備 CentOS の準備、こちらは CentOS 7.3 CentOS-7-x86...
目次ユースケースリアクティブAPI関連プロセス反応的なcreateReactiveObjectはレス...
概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...
この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...
この記事では、最も単純なものから最も複雑なものまで、Nginx の現在の制限構成を例を使って説明しま...