ステートを使ったインタラクティブ性の追加
Reactがどのようにステートとイベントハンドラーを使ってインタラクティブ性を追加するのかを見ていきましょう。
例として、HomePage
コンポーネント内に「いいね」ボタンを作成してみます。まず、return()
ステートメント内にボタン要素を追加します:
イベントの監視
ボタンがクリックされたときに何か動作させるには、onClick
イベントを使用できます:
Reactでは、イベント名はキャメルケースで記述されます。onClick
イベントは、ユーザーの操作に反応するために使用できる多くのイベントの1つです。例えば、入力フィールドにはonChange
を、フォームにはonSubmit
を使用できます。
イベントの処理
イベントがトリガーされるたびに「処理」する関数を定義できます。return文の前にhandleClick()
という関数を作成します:
そして、onClick
イベントがトリガーされたときにhandleClick
関数を呼び出せます:
ブラウザでこれを実行してみてください。開発者ツールでログ出力が増えていく様子を確認できます。
ステートとフック
Reactにはフックと呼ばれる一連の関数があります。フックを使用すると、ステートなどの追加ロジックをコンポーネントに追加できます。ステートは、通常ユーザーの操作によってトリガーされる、UI内の時間とともに変化するあらゆる情報と考えることができます。

_ステート_を使用して、ユーザーが「いいね」ボタンをクリックした回数を保存および増加させることができます。実際、ステートを管理するために使用されるReactフックはuseState()
と呼ばれます。
useState()
をプロジェクトに追加します。これは配列を返し、配列の分割代入を使用してコンポーネント内でそれらの配列値にアクセスして使用できます:
配列の最初の項目はステートの値
で、任意の名前を付けることができます。説明的な名前を付けることが推奨されます:
配列の2番目の項目は、値を更新
する関数です。更新関数には任意の名前を付けられますが、更新するステート変数の名前にset
を接頭辞として付けるのが一般的です:
また、likes
ステートの初期値を0
に設定する機会もあります:
次に、コンポーネント内でステート変数を使用して、初期ステートが機能していることを確認できます。
最後に、ステート更新関数setLikes
をHomePage
コンポーネント内で呼び出せます。前に定義したhandleClick()
関数内に追加しましょう:
ボタンをクリックすると、handleClick
関数が呼び出され、現在のいいね数+1を引数としてsetLikes
ステート更新関数が呼び出されます。
注: コンポーネントの最初の関数パラメータとして渡されるpropsとは異なり、ステートはコンポーネント内で初期化および保存されます。ステート情報を子コンポーネントにpropsとして渡すことはできますが、ステートを更新するロジックは、ステートが最初に作成されたコンポーネント内に保持する必要があります。
ステートの管理
これはステートの導入に過ぎず、Reactアプリケーションでステートとデータフローを管理する方法についてさらに学ぶことができます。詳細については、Reactドキュメントのインタラクティブ性の追加とステートの管理のセクションを参照することをお勧めします。
追加リソース: