ホームページ >ウェブフロントエンド >jsチュートリアル >React の関数コンポーネントとクラス コンポーネント: どちらを選択するか?
React を使用すると、開発者は 関数コンポーネント と クラス コンポーネント という 2 つの主な方法でコンポーネントを作成できます。どちらも再利用可能な UI 部分を定義するという同じ目的を果たしますが、構文、機能、使用法が異なります。
機能コンポーネントは、JSX を返す JavaScript 関数です。これらはシンプルで軽量で、主に UI を表示するために設計されています。 React Hooks の導入により、機能コンポーネントがより強力になり、状態とライフサイクル メソッドを管理できるようになりました。
const Greeting = ({ name }) => { return <h1>Hello, {name}!</h1>; };
クラスコンポーネントは、React.Component を拡張した ES6 クラスです。これらはより複雑な構造を持ち、追加のツールなしで状態メソッドとライフサイクル メソッドを使用できます。 React Hook が登場する前は、クラス コンポーネントは状態とロジックを管理するために不可欠でした。
import React, { Component } from "react"; class Greeting extends Component { render() { return <h1>Hello, {this.props.name}!</h1>; } }
Aspect | Functional Components | Class Components |
---|---|---|
Definition | Defined as a JavaScript function. | Defined as an ES6 class. |
State Management | Use React Hooks (e.g., useState). | Use this.state for state. |
Lifecycle Methods | Managed with Hooks like useEffect. | Use built-in lifecycle methods. |
Syntax Simplicity | Simple and concise. | More verbose with boilerplate. |
Performance | Generally faster and lightweight. | Slightly slower due to overhead. |
Usage Trend | Preferred in modern React development. | Common in legacy codebases. |
React Hook は、機能コンポーネントの状態およびライフサイクル メソッドへのアクセスを提供します。
const Greeting = ({ name }) => { return <h1>Hello, {name}!</h1>; };
import React, { Component } from "react"; class Greeting extends Component { render() { return <h1>Hello, {this.props.name}!</h1>; } }
状態メソッドとライフサイクル メソッドは組み込まれていますが、追加の定型文が必要です。
const Counter = () => { const [count, setCount] = React.useState(0); return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increment</button> </div> ); };
const Timer = () => { React.useEffect(() => { console.log("Component Mounted"); return () => console.log("Component Unmounted"); }, []); return <p>Timer is running...</p>; };
フックを利用した機能コンポーネントは、React 開発の現代の標準です。これらは、状態、ライフサイクル、副作用を管理するためのよりクリーンで効率的な方法を提供します。クラス コンポーネントは依然として古いプロジェクトに関連していますが、徐々に置き換えられています。
React 開発では関数コンポーネントとクラス コンポーネントの両方に役割がありますが、React Hooks の台頭により、優先順位は関数コンポーネントに移りました。新しいプロジェクトの場合は、シンプルさ、柔軟性、パフォーマンスの向上を実現する機能コンポーネントが推奨される選択肢です。
以上がReact の関数コンポーネントとクラス コンポーネント: どちらを選択するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。