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 の詳細な展開 (グラフィック チュートリアル)
この記事では、Google 入力方法をインストールします。実は以前はSogou入力方式を使っていたの...
任意のウェブページを開きます。例: http://www.baidu.com/ ブラウザのタブのヘッ...
かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...
序文従来のWEBレイアウトに沿うため、すべてヘッダーとフッターモードの左・中央・右レイアウトで書かれ...
MySQL 5.7.8 以降では、JSON テキストでデータを効率的に取得できるネイティブ JSON...
1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...
以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...
mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...
Web プロジェクトを開発する場合、IIS をインストールする必要があります。IIS がインストール...
アップグレードプロセス:元のシステム: CentOS7.3 [root@my-e450 ~]# un...
この記事ではMySQL 8.0.24バージョンのインストールと設定方法を記録し、皆さんと共有しますM...
1. はじめにtable_cache は非常に重要な MySQL パフォーマンス パラメータであり、...
目次1. 概要2. gdbデバッグ2.1. ブレークポイントを設定する2.1.1. ブレークポイント...
このチュートリアルでは、LinuxにMySQLをインストールする詳細な手順を参考までに紹介します。具...
MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...