LoginSignup
0
0

Reactのクラスコンポーネントと関数コンポーネントの特徴と使い方

Posted at

Reactのコンポーネント

Reactを使ってウェブページを作る際、画面上の各部分(例えばボタンやテキストボックスなど)は「コンポーネント」という部品で表現されます。このコンポーネントを組み合わせて、複雑なページやアプリケーションを構築します。

1. クラスコンポーネント

特徴:

  • クラスベース: JavaScriptのクラスを使って定義されます。
  • ライフサイクルメソッド: 特定の時点で実行されるメソッドがあります。例えば、コンポーネントが画面に初めて表示されるときや、データが変わったときなどの動作を定義できます。
  • 状態管理: this.stateで状態(データ)を持ち、this.setStateで状態を更新できます。

例:

class WelcomeClass extends React.Component {
  // コンストラクタ: コンポーネントが作成されるときに一度だけ実行される
  constructor(props) {
    super(props);
    this.state = { name: 'React' };
  }

  // レンダリング: どのように画面に表示されるかを定義
  render() {
    return <h1>Hello, {this.state.name}</h1>;
  }
}

2. 関数コンポーネント

特徴:

  • 関数ベース: 通常の関数や矢印関数で定義されます。
  • Hooksの利用: 状態を持ったり、ライフサイクルのような動作を制御するための特別な関数(Hooks)が使えます。例: useState, useEffect

例:

import { useState } from 'react';

function WelcomeFunction() {
  // useState Hook: コンポーネントの状態を管理する
  const [name, setName] = useState('React');

  return <h1>Hello, {name}</h1>;
}

まとめ:

  • クラスコンポーネント: JavaScriptのクラスの特性を活かして、状態やライフサイクルを持つコンポーネントを作成する方法。
  • 関数コンポーネント: よりシンプルで柔軟な方法でコンポーネントを作成。最近のReactでは、Hooksを使ってクラスコンポーネントと同じようなことを関数コンポーネントで実現できるようになりました。

関数コンポーネントは、その簡潔さとHooksの導入による強化のため、現在のReact開発の主流となっています。しかし、多くの既存のプロジェクトやライブラリではクラスコンポーネントが使用されているので、両方を理解することは重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0