1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

で、実際useStateってどう動いてんの? #3

Last updated at Posted at 2025-08-15

📢 このシリーズについて

このシリーズは、React公式ドキュメント( https://ja.react.dev/ )を(できるだけ)全て読み、学んだことやコード例、自分なりの補足をまとめていくチャレンジの記録です。

目的

  • Reactの基礎〜応用を公式の正しい情報で体系的に理解する
  • 自分の言葉でアウトプットして知識を定着させる

このシリーズでは、ただ内容をなぞるのではなく、**「自分がReactを使っていても気づかなかった事実や落とし穴」**を重点的にまとめます。

読んだときに「へぇ、そうなんだ!」となったポイントは必ず記録します!

目次 - 本記事で取り扱う内容

  • なぜローカル変数そのものでなく、stateを用いるのか
  • useStateの使用方法
  • stateの実際の動き

🗂 基本情報



📌 内容

コンポーネント内で行われたユーザ操作を記憶しておくためのメモリをstateという。

言い方を変えると、stateを使用するということは、そのコンポーネントに何かを覚えさせるようReactに指示を出すということとも言える。

なぜローカル変数そのものでなく、stateを用いるのか

onClickイベントによってある変数 ”index” を変更したとしても、見ためは全く変更されない。その理由は以下の2点。

  • ローカル変数はレンダー間で保持されず、再レンダリングを行う際には初期値が用いられる。
  • ローカル変数を変更したタイミングで再レンダリングが発生しない。

この2点の課題を useState というHookは解決している。つまり、

  • レンダー間でデータを保持できる。
  • stateセッタ関数を用いて変数を変更すると、Reactが再レンダリングをトリガする。

useStateの使用方法

インポートした後、以下のように定義する。

const [index, setIndex] = useState(0);

この際の [ ] は分割代入のカッコらしい。

つまり、 useState()は常に2つの要素を持っているということだ。

1つ目の要素が変数で、2つ目の要素がセッタ関数であり、セッタ関数(); を呼び出すことで、変数を更新することができる。

stateの実際の動き

コンポーネントがレンダーされる度、useStateは上のような2つの要素をもつ配列を返す。具体的には

  • 値を保持するstate変数
  • state変数の更新、Reactに対しコンポーネントの再レンダーをトリガするセッタ関数

レンダリングとstateがどのように連動するかに注目すると以下のようになる。

  • 初めてレンダーされるときは、 [ 初期値, セッタ関数 ] が返される。
  • セッタ関数が呼ばれた際、Reactは更新されたstate変数の記憶と、再レンダーの予約を行う。
  • 2回目以降レンダーされた場合、Reactは初期値ではなく記憶したstate変数含む [ 記憶された値, セッタ関数 ] を返す。


🚀 宣伝コーナー

個人開発もやっています🍃

ぜひ一度触ってみてください!

1. CAN I DO THIS

📜概要

🌟 「この問題、私に解ける?」がすぐ分かる! 🌟

CAN I DO THIS は、問題(文章/画像)をポンっと入れるだけで、「解くのに必要な前提知識」を瞬時に可視化するツールです💡

🛡 前提知識がないまま無理に挑んで、時間と体力をムダに消耗…

そんな経験、もうしなくてOK。

必要な知識が足りているか、すぐ判断できます!

✨ 主な機能

  • 問題を貼るだけ → 必要知識リスト+学習ルート自動生成
  • 前提 → 派生が一目で分かる依存関係グラフ
  • 登録不要&無料(広告視聴で利用可能)

🔗 今すぐ試す

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?