コアの違い
React では、コンポーネントはユーザー インターフェイスの一部を表すコードです。 React には、クラス コンポーネントと機能コンポーネントの XNUMX 種類のコンポーネントがあります。
クラス コンポーネントは、React.Component クラスを拡張するクラスを使用して定義されます。 それらはより機能が豊富で、状態とライフサイクル イベントを処理するためのより多くのオプションがあります。 クラス コンポーネントは次のようになります。
class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; }
}
機能コンポーネントは、React 要素を返す単なる JavaScript 関数です。 これらはクラス コンポーネントよりも単純で、読み書きが容易です。 以下は、機能コンポーネントとして書かれた上記と同じコンポーネントです。
function Welcome(props) { return <h1>Hello, {props.name}</h1>;
}
いつ何を使うか
一般に、状態メソッドやライフサイクル メソッドなど、クラス コンポーネントでのみ使用できる機能を使用する必要がない限り、機能コンポーネントを使用する必要があります。
いくつかあります。 理由は なぜあなたが好むかもしれない 機能コンポーネントよりもクラス コンポーネントを使用する:
-
読みやすさ: クラス コンポーネントを使用すると、特にステート メソッドやライフサイクル メソッドが多数ある場合に、コードを理解しやすくなります。 コードは、明確に定義された見つけやすいメソッドに編成されています。
-
再利用性: クラス コンポーネントは、拡張して新しいコンポーネントを作成できるため、より簡単に再利用できます。 これは、コンポーネント間で多くの共有機能がある場合に特に便利です。
-
組織: クラス コンポーネントを使用すると、関連するメソッドを同じコンポーネントにまとめてグループ化できるため、コードの編成が容易になります。 これにより、コードの検索と保守が容易になります。
また、書き込みを選択する理由がいくつかあります。 機能コンポーネント:
-
状態またはライフサイクル メソッドを使用する必要がない場合: 状態またはライフサイクル メソッドを使用する必要がない場合は、クラス コンポーネントよりも単純で読み書きが簡単な関数コンポーネントが適しています。
-
純粋なコンポーネントが必要な場合: Functional コンポーネントは「純粋な」コンポーネントです。つまり、props のみに依存し、独自の状態を持たないことを意味します。 これは、小道具が変更されたときにのみコンポーネントが再レンダリングされるようにする場合に役立ちます。
-
パフォーマンスを最適化したい場合: 機能コンポーネントは純粋であるため、React によってより簡単に最適化でき、パフォーマンスが向上する可能性があります。
-
簡潔で読みやすいコードを記述したい場合: 機能コンポーネントはより単純で可動部分が少ないため、特にアプリケーションに多くのコンポーネントがある場合は、読みやすく理解しやすくなります。
一般に、クラス コンポーネントでしか満たすことができない特定のニーズがない限り、機能コンポーネントを使用する必要があります。
useEffect & useState
ただし、関数コンポーネントでも状態メソッドとライフサイクル メソッドを使用できることに注意することが重要です。 使用状態 & useEffect フック。 一般に、ニーズに最も適したタイプのコンポーネントを選択する必要があります。これにより、コードが最も読みやすく理解しやすくなります。
状態またはライフサイクル イベントを実装したい場合は、フックを使用してコンポーネントを有効にすることができます。
これはあなたが実装する方法です useEffect & 使用状態 機能コンポーネント内
import { useState, useEffect } from 'react'; function Example() { // Declare a new state variable, which we'll call "count" const [count, setCount] = useState(0); // Similar to componentDidMount and componentDidUpdate: useEffect(() => { // Update the document title using the browser API document.title = `Number of clicks: ${count}`; }); return ( <div> <p>Number of clicks: {count}</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> );
}
ここでは、カウントを追跡し、現在のカウントをユーザーに表示するコンポーネントがあります。 コンポーネントは、 使用状態 機能コンポーネントに状態を追加するためのフック、および useEffect カウントが変更されたときにアクション (ドキュメントのタイトルを更新) を実行するためのフック。
主要な取り組み
これらは、React でクラス コンポーネントと機能コンポーネントのどちらを選択するかについての主な要点です。
- クラス コンポーネントは、React.Component クラスを拡張するクラスを使用して定義され、状態およびライフサイクル イベントを処理するためのより多くのオプションがあります。
- 機能コンポーネントは、React 要素を返す単なる JavaScript 関数であり、読み書きがより単純で簡単です。
- 状態メソッドやライフサイクル メソッドなど、クラス コンポーネントでのみ使用できる機能を使用する必要がない限り、機能コンポーネントを使用する必要があります。
- useState フックと useEffect フックを使用して、機能コンポーネントに状態を追加し、副作用を実行できます。
- 全体として、クラス コンポーネントと機能コンポーネントのどちらを選択するかは、ニーズに最も適したものと、コードを最も読みやすく理解しやすいものにすることに帰着します。
この簡単な説明がお役に立てば幸いです。 JavaScript、React、または Web 開発全般を学ぶための指導やガイダンスが必要な場合は、1 対 1 のセッションについてお気軽にお問い合わせください。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://www.codementor.io/maximiliangeiger/making-the-choice-between-class-components-and-functional-components-in-react-20uvaeyqci
- 1
- 7
- a
- 上記の.
- Action
- &
- API
- 申し込み
- 利用できます
- なぜなら
- BEST
- より良いです
- の間に
- ブラウザ
- (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。
- コール
- 変化する
- 変更
- 選択
- 選択する
- 選択する
- class
- はっきりと
- コード
- コンポーネント
- コンポーネント
- 接触
- 基本
- カップル
- 作ります
- 電流プローブ
- ディスプレイ
- ドキュメント
- ダウン
- 容易
- 最も簡単
- 簡単に
- 効果
- enable
- 確保
- 特に
- イベント
- 説明
- 特徴
- 少数の
- もう完成させ、ワークスペースに掲示しましたか?
- 無料版
- から
- function
- 機能的な
- 機能性
- 機能
- 良い
- グループ
- ハンドリング
- 助けます
- こちら
- フック
- 希望
- 認定条件
- HTTPS
- 実装する
- 重要
- in
- インタフェース
- IT
- JavaScriptを
- キー
- LEARN
- LOOKS
- たくさん
- メイン
- 維持する
- make
- 作る
- 作成
- 意味
- メンタリング
- メソッド
- かもしれない
- 他には?
- 最も
- 移動する
- 必要
- ニーズ
- 新作
- 数
- 最適化
- 最適化
- オプション
- 整理
- 自分の
- 部
- 部品
- path
- 実行する
- パフォーマンス
- ピース
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- お願いします
- 可能性
- 好む
- 反応する
- 読む
- 理由は
- 関連する
- 表し
- 結果
- return
- 同じ
- センス
- セッション
- shared
- すべき
- 側
- 同様の
- 特定の
- 都道府県
- まだ
- そのような
- まとめ
- アプリ環境に合わせて
- 役職
- 〜へ
- 一緒に
- 追跡する
- わかる
- アップデイト
- 更新
- つかいます
- ユーザー
- ユーザーインターフェース
- 歓迎
- この試験は
- which
- 意志
- 作品
- でしょう
- 書きます
- 書かれた
- You
- あなたの
- ゼファーネット