React勉強中なので、簡単にClass Component
とFunctional Component
の違いをメモしておきます👷♀️
Class Component
Class Component
はStateやライフサイクルを持つことができます。実装クラスはReact.Component
を継承する必要があります。
class Summary extends React.Component { }
ライフサイクルメソッドを使って、コンポーネントの再レンダリングをするかどうかをハンドリングしたい場合は、shouldComponentUpdate
というメソッドをクラスに実装します。
詳しい他のライフサイクルメソッドについては、下記の記事がわかりやすかったので、載せておきます。
Functional Component
Functional Component
はその名の通り関数なので、Class Component
とは異なりStateやライフサイクルを持ちません。ただ、その分コンポーネントの記述を簡潔にすることができます。
const Hoge: React.FC<Props> = props => { }
今までは、Functional Component
よりも高機能なClass Component
を使うことが主流だったようですが、React Hooks
が導入されたことにより、Functional Component
でもクラスと同じようにState(状態)が持てるようになり、現在はFunctional Component
が主流になっているそうです。
React Hooks
は、Functional Component
に対して、状態を保存するための変数領域を提供することで状態を保つことを実現しているようです。
公式ドキュメントに載っているコードをお借りして、見てみます。const [count, setCount] = useState(0);
で定義しているcount
は値(State)を、setCount
は値を更新するための関数をそれぞれ定義しています。ちなみにサンプルコードではuseState
を使って初期値を0
に設定しています。という感じでReact Hooks
は、Functional Component
でシンプルにStateの読み書きをできるようにしたもののようですね👀
import React, { useState } from 'react'; function Example() { // Declare a new state variable, which we'll call "count" const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); }
てな感じで本日も以上となります🍺
参考
- https://ja.reactjs.org/docs/hooks-intro.html
- https://sbfl.net/blog/2019/11/12/react-hooks-introduction/
- https://qiita.com/kawachi/items/092bfc281f88e3a6e456