0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Posted at

はじめに

 本記事は、プログラミング初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
 そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
 間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。

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

コンポーネントとは

コンポーネントとは、UIの一部となる見た目(View)と機能(Controller)を合わせたものです。
コンポーネントを組み合わせることで一つのページを作ります。

コンポーネント単位とすることで以下の利点があります。

  • 再利用することができる
  • 再利用することで見た目や機能が統一できる
  • 再利用することで変更したい場合に修正する箇所が減り、管理がしやすくなる

  
このコンポーネントの定義の仕方には以下の2種類があります。

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

クラスコンポーネントの記述方法

クラスコンポーネントは以下のように記述します。

.js
class App extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    return <div>I'm {this.props.name}</div>
  }
}

クラスコンポーネントは、以下のような特徴があります。

  • React.Componentを継承する。
  • constructorでpropを受け取る。
  • renderメソッド内でJSXをreturnする。
  • ライフサイクルやstateを持つ。

最後の「ライフサイクルやstateを持つ」については、現在はHooksが登場し、後述する関数コンポーネントに記述することができるようになったため、現在はあまりクラスコンポーネントを使わないようです。

関数コンポーネントの記述方法

関数コンポーネントは以下のように記述します。

.js
const App = (props) => {
  return <div>I'm {props.name}</div>
}

関数コンポーネントには、以下のような特徴があります。

  • 関数内でJSXをreturnする
  • 引数でpropsを受け取る
  • ライフサイクルやstateを持たない

前述の通り、ライフサイクルやstateについては、Hooksの登場により、関数コンポーネントも持てるようになりました。
そのため、現在では、こちらの関数コンポーネントがメインで使われているようです。

まとめ

  • コンポーネントとは、UIの一部となる見た目(View)と機能(Controller)を合わせたもの
  • コンポーネントには、クラスコンポーネントと関数コンポーネントがある
  • React Hooksの登場により、現在では関数コンポーネントがメイン
0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?