Reactにおけるコンポーネントの種類は、大きく分けて「関数コンポーネント」と「クラスコンポーネント」の2種類があります。
関数コンポーネントは、JavaScriptの関数として定義されるコンポーネントです。render()メソッド内にJSXを記述して、コンポーネントの出力を生成します。
function MyComponent() {
return (
<div>
Hello, world!
</div>
);
}
クラスコンポーネントは、JavaScriptのクラスとして定義されるコンポーネントです。render()メソッド内にJSXを記述して、コンポーネントの出力を生成します。また、stateと呼ばれる内部状態を保持することもできます。
class MyComponent extends React.Component {
render() {
return (
<div>
Hello, world!
{this.state.name}
</div>
);
}
constructor(props) {
super(props);
this.state = {
name: "John Doe",
};
}
}
関数コンポーネントとクラスコンポーネントの主な違いは、以下の通りです。
機能 | 関数コンポーネント | クラスコンポーネント |
---|---|---|
定義方法 | JavaScriptの関数として定義 | JavaScriptのクラスとして定義 |
出力生成 | render()メソッド内にJSXを記述 | render()メソッド内にJSXを記述 |
内部状態 | 保持できない | 保持できる |
ライフサイクルメソッド | 持たない | 持つ |
おすすめの使用例 | 単純なコンポーネント | 複雑なコンポーネント、状態を保持するコンポーネント |
Reactの最新バージョンでは、関数コンポーネントが主流となっています。関数コンポーネントは、クラスコンポーネントに比べてシンプルで読みやすく、パフォーマンスも向上しています。