React.FCとReact.Componentの使用に関する簡単な説明

React.FCとReact.Componentの使用に関する簡単な説明

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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactコンポーネントのライフサイクル機能についての簡単な説明
  • Reactコンポーネントを作成するいくつかの方法についての簡単な説明
  • Reactコンポーネントのいくつかの形式の詳細な説明
  • React ステートレス コンポーネントと高階コンポーネント
  • コンポーネントのプロパティを設定するためのReact styled-componentsメソッド
  • React.js における PureComponent の重要性と使用方法の詳細な説明

<<:  MySQLの起動と接続方法の例分析

>>:  Alibaba Cloud Server の詳細な展開 (グラフィック チュートリアル)

推薦する

CSS を使用して適応型の幅と高さを持つ 16:9 の長方形を実装する例

先ほど、適応幅と高さが1:1の正方形を作成する方法について説明しました。 https://www.j...

MySQL 8.0.20 のインストールと設定方法のグラフィックチュートリアル

MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...

Linux ファイアウォール設定の詳細な手順 (yum ウェアハウス設定に基づく)

序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...

ウェブページ制作時のコードコメントの書き方

<br />私の仕事で使用しているアノテーションの書き方の基準をまとめました。技術的な内...

Nginxはhttpリクエスト実装プロセス分析を処理する

Nginxはまず、設定ファイル内のどのserver{}ブロックを処理に使用するかを決定します。次のs...

MySQL 8.0.24 リリースノートのいくつかの改善点

目次1. 接続管理2. オプティマイザレベルでの改善3. 機能の改善4. パフォーマンススキーマの最...

Vue は Tencent Map を統合して API を実装します (デモ付き)

目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...

CSS3は小さな矢印のさまざまなグラフィック効果を実現します

CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...

オンラインチャットを実現するVue+sshフレームワーク

この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...

MySQLデータベースがNULLを可能な限り避ける理由

MySQL の多くのテーブルには、NULL が列のデフォルト属性であるため、アプリケーションが NU...

userdel コマンドを使用して Linux ユーザーを削除する方法の詳細なチュートリアル

セルデルとは何かuserdel は、ユーザーを削除するための低レベルのツールです。 Debian で...

ウェブページのエンコードにおける GB2312、GBK、UTF-8 の違い

まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...

Reactでコンポーネントがどのように通信するかの詳細な説明

1. 何ですかコンポーネント間の通信は、次の 2 つの単語に分けることができます。コンポーネントコ...

JavaScript でドラッグ可能なプログレスバーを実装する

この記事では、ドラッグ可能なプログレスバーを実装するためのJavaScriptの具体的なコードを参考...

共通要素のデフォルトのマージンとパディング値に関する議論

今日は、さまざまなブラウザでのデフォルト要素のマージン値が何であるかという問題について説明しました。...