カテゴリ: React 更新日: 2026/02/24

useStateの基本!Stateを関数コンポーネントで使う方法を初心者向けに解説

useStateの基本!Stateを関数コンポーネントで使う方法
useStateの基本!Stateを関数コンポーネントで使う方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Reactでよく出てくるuseStateって何なんですか?」

先生

「useStateは、ReactのHooksのひとつで、関数コンポーネントに状態を持たせるための機能なんです。」

生徒

「状態ってどういう意味ですか?ゲームとかのキャラクターのHPみたいなものですか?」

先生

「そのイメージはとても近いです!例えばボタンを押すたびに数字が増えるカウンターや、文字が変わる表示など、変化するデータを管理するのが状態(State)です。」

生徒

「なるほど!それをuseStateで簡単にできるんですね。」

先生

「その通りです。では実際に使い方を見ていきましょう。」

1. useStateとは?

1. useStateとは?
1. useStateとは?

useState(ユースステート)は、React Hooksの中で最も基本的かつ重要な機能です。関数コンポーネントに「状態」を追加するために使います。状態とは、アプリの中で変化する値のことを指します。

例えば、最初は「こんにちは!」と表示されていて、ボタンを押すと「ボタンがクリックされました!」に変わるといった動作も状態によって管理されます。

クラスコンポーネントを使っていた頃はthis.statethis.setState()といった書き方をしていましたが、Hooksを使えばシンプルに1行で書けるようになりました。

2. useStateの基本構文

2. useStateの基本構文
2. useStateの基本構文

useStateの基本構文はとてもシンプルです。次のように書きます。


const [値, 値を更新する関数] = useState(初期値);

例えば、次のような書き方をします。

  • 「値」… 現在の状態(変数のように使える)
  • 「値を更新する関数」… 状態を変更するための関数
  • 「初期値」… 状態の最初の値

つまり、useStateは「変化する箱」を作って、その箱に入れる値と、それを変えるためのリモコンを一緒に提供してくれるイメージです。

3. useStateを使った簡単なサンプル

3. useStateを使った簡単なサンプル
3. useStateを使った簡単なサンプル

それでは実際にuseStateを使ったシンプルな例を見てみましょう。


import React, { useState } from "react";

function App() {
  const [message, setMessage] = useState("こんにちは!");

  return (
    <div>
      <h1>{message}</h1>
      <button onClick={() => setMessage("ボタンがクリックされました!")}>
        クリックしてみよう
      </button>
    </div>
  );
}

export default App;
(画面に「こんにちは!」と表示され、ボタンを押すと「ボタンがクリックされました!」に変わります)

この例では、messageという状態を作り、初期値を「こんにちは!」としています。そして、ボタンをクリックするとsetMessageを使って値を更新し、画面に新しいメッセージが表示されます。

4. カウンターアプリで理解するuseState

4. カウンターアプリで理解するuseState
4. カウンターアプリで理解するuseState

次は少し応用して、ボタンをクリックするたびに数字が増えていく「カウンターアプリ」を作ってみましょう。


import React, { useState } from "react";

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>現在のカウント: {count}</p>
      <button onClick={() => setCount(count + 1)}>カウントアップ</button>
    </div>
  );
}

export default Counter;
(画面に「現在のカウント: 0」と表示され、ボタンを押すたびに数字が1ずつ増えていきます)

この例では、countが状態で、初期値は0です。ボタンを押すたびにsetCount(count + 1)が実行され、表示が更新されます。まさに「状態が変わるたびに画面が再描画される」というReactの仕組みが分かります。

5. useStateを使うときの注意点

5. useStateを使うときの注意点
5. useStateを使うときの注意点

useStateを使うときに覚えておきたいポイントがあります。

  • 直接値を変更しない:必ず更新関数(例:setMessagesetCount)を使って値を変える
  • 状態が変わると再描画される:更新すると自動的に画面が新しい状態に切り替わる
  • 複数のuseStateを使える:1つのコンポーネントで複数の状態を持つことも可能

例えば「名前」と「年齢」をそれぞれ状態で管理したいときは、useStateを2つ書けばOKです。

6. useStateのメリット

6. useStateのメリット
6. useStateのメリット

useStateを使うことで、コードがシンプルになり、初心者でも直感的に理解しやすくなります。従来のクラスコンポーネントと比べて次のようなメリットがあります。

  • コードが短くて読みやすい
  • 複雑なthisを使わなくてよい
  • 必要な場所でだけ状態を管理できる
  • 小さな機能をシンプルに追加できる

このように、useStateはReactの入門にぴったりのHooksであり、関数コンポーネントを使う際には欠かせない存在です。

まとめ

まとめ
まとめ

useStateとは何かをあらためて整理しよう

ここまでの記事では、ReactにおけるuseStateの基本について、初心者の方でも理解しやすいように、 会話形式や具体的なサンプルコードを交えながら解説してきました。 useStateは、関数コンポーネントの中で「状態(State)」を扱うための最も基本的な仕組みです。 状態とは、時間やユーザー操作によって変化するデータのことで、画面表示と密接に関係しています。

例えば、ボタンを押した回数、表示するメッセージ、入力フォームの文字列など、 Reactアプリケーションの多くは「変化する値」を扱います。 useStateを使うことで、これらの変化を安全かつ分かりやすく管理できるようになります。 特にReactでは、状態が更新されると自動的に画面が再描画されるため、 開発者はDOMを直接操作する必要がなくなります。 この考え方こそが、Reactらしい開発スタイルの中心にあります。

useStateの書き方と考え方のポイント

useStateは配列の分割代入を使って、 「現在の値」と「値を更新するための関数」を同時に受け取ります。 この構文に最初は戸惑うかもしれませんが、 「状態の箱」と「その箱を操作するためのスイッチ」がセットになっていると考えると理解しやすくなります。

また、useStateで管理している値は、直接書き換えてはいけません。 必ずsetから始まる更新用の関数を使って変更する必要があります。 これはReactが状態の変化を正しく検知し、再描画を行うために重要なルールです。 このルールを守ることで、予期しないバグを防ぎ、 安定したReactアプリケーションを作ることができます。

サンプルプログラムで仕組みを再確認

ここで、useStateの基本的な動きをあらためて確認できるサンプルプログラムを見てみましょう。 ボタンをクリックすることで状態が変化し、画面表示が更新される例です。


import React, { useState } from "react";

function SampleState() {
  const [count, setCount] = useState(0);

  function increment() {
    setCount(count + 1);
  }

  return (
    <div>
      <h2>現在のカウント: {count}</h2>
      <button onClick={increment}>
        カウントを増やす
      </button>
    </div>
  );
}

export default SampleState;

このプログラムでは、countという状態をuseStateで定義し、 ボタンをクリックするたびにincrement関数が呼び出されます。 関数の中でsetCountを使って状態を更新すると、 Reactが自動的に再描画を行い、最新の値が画面に反映されます。 この一連の流れを理解できると、useStateの役割がはっきり見えてきます。

useStateを理解することの重要性

useStateは、Reactを学ぶうえで最初に身につけるべき非常に重要なHooksです。 フォーム入力、ボタン操作、表示の切り替えなど、 ほとんどのReactアプリケーションでuseStateが使われています。 この基本をしっかり理解しておくことで、 次に学ぶuseEffectやイベント処理、コンポーネント分割といった内容も スムーズに理解できるようになります。

初心者の方は、まず「状態が変わると画面が変わる」というReactの基本思想を、 useStateを通して体感することが大切です。 小さなサンプルを何度も書いて試すことで、 自然とReactの書き方に慣れていくでしょう。

先生と生徒の振り返り会話

生徒

「useStateって難しそうだと思っていましたが、 状態が変わると画面が更新される仕組みが少し分かってきました。」

先生

「それはとても良い理解ですね。 useStateはReactの考え方を理解するための入口なんです。」

生徒

「ボタンを押すたびに数字が変わるのを見ると、 状態と画面がつながっている感じがします。」

先生

「その感覚が大事です。 Reactでは状態を中心にアプリが動いていると考えると分かりやすいですよ。」

生徒

「まずはuseStateをしっかり使いこなせるように、 小さなサンプルから練習してみます。」

先生

「それが一番の近道です。 useStateを理解できれば、Reactの基礎はかなり身についていますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

ReactのuseStateとは何ですか?初心者でもわかるように教えてください。

ReactのuseStateとは、関数コンポーネントに状態(State)を追加するためのReact Hooksの1つです。たとえば、表示するテキストや数字など、変化する値を管理するために使われます。
カテゴリの一覧へ
新着記事
New1
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New2
React
PropsとStateの違いを徹底解説!使い分けのポイントまとめ
New3
React
Reactのフォーム入力を再利用しよう!初心者でもわかるフィールドコンポーネント化の考え方
New4
React
Reactでできること一覧!初心者でもわかるWebアプリ・スマホアプリ・PWAの活用方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.4
Java&Spring記事人気No4
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.7
Java&Spring記事人気No7
React
ReactでAxiosローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本
No.8
Java&Spring記事人気No8
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方