SEの部屋

コンポーネントの作成と使用方法

Reactコンポーネントの作成方法

Reactでの開発では、コンポーネントの作成とその理解が重要です。このセクションでは、コンポーネントをどのように作成し、どのように機能させるかについて、より詳しく解説します。

クラスコンポーネントと関数コンポーネント

Reactでは、主に二種類のコンポーネントが存在します。
クラスコンポーネントと関数コンポーネントそれぞれの作成方法について説明します。

クラスコンポーネント

Reactのコンポーネントは、関数コンポーネントとクラスコンポーネントの2種類の書き方が存在します。クラスコンポーネントは、ES6のクラスを使用してコンポーネントを定義する方法です。以前は、状態(state)やライフサイクルメソッドなどの機能を使用する場合、クラスコンポーネントを使う必要がありました。しかし、Hooksの導入により、関数コンポーネントでもこれらの機能が利用できるようになりました。

import React, { Component } from 'react';

class MyComponent extends Component {
  render() {
    return <div>Hello, this is a class component!</div>;
  }
}

export default MyComponent;

関数コンポーネント

関数コンポーネントは、Reactのコンポーネントを関数として定義する方法です。関数コンポーネントは、クラスコンポーネントよりもシンプルで読みやすいため、Reactの新しい機能、Hooksとともによく使われるようになっています。

import React from 'react';

const MyComponent = () => {
  return <div>Hello, this is a functional component!</div>;
}

export default MyComponent;

コンポーネントの状態(State)

Reactのコンポーネントは、内部に状態(state)を持つことができます。状態は、コンポーネントの動作や表示を制御するためのデータです。

クラスコンポーネントでの状態管理

import React, { Component } from 'react';

class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      counter: 0
    };
  }
  render() {
    return (
      <div>
        <p>{this.state.counter}</p>
      </div>
    );
  }
}

関数コンポーネントでの状態管理(useStateフック)

import React, { useState } from 'react';


const MyComponent = () => {
  const [counter, setCounter] = useState(0);
  return (
    <div>
      <p>{counter}</p>
    </div>
  );
}

Propsについて

Props(プロパティ)は、コンポーネント間でデータを渡す手段です。親コンポーネントから子コンポーネントへとデータを渡すことができます。

Propsの使用例

import React from 'react';

const ChildComponent = (props) => {
  return <div>{props.message}</div>;
}

const ParentComponent = () => {
  return <ChildComponent message="Hello from parent component!" />;
}

イベントハンドラー

イベントハンドラーを使用すると、クリックやフォームの入力など、ユーザーアクションに対して処理を行うことができます。

import React, { useState } from 'react';


const MyComponent = () => {
  const [counter, setCounter] = useState(0);


  const handleClick = () => {
    setCounter(counter + 1);
  };


  return (
    <div>
      <p>{counter}</p>
      <button onClick={handleClick}>Increment</button>
    </div>
  );
}

これらはReactのコンポーネント作成において基本的な概念ですが、これを理解していれば、様々なWebアプリケーションの開発が行いやすくなります。