🍍

" state " という深淵チラ見 #7

に公開

📢 このシリーズについて

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

目的

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

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

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

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

  • レンダリング指示トリガとしての “ state “
  • レンダーって?Reactとの関係は?

🗂 基本情報



📌 内容

以前の記事( https://qiita.com/dionaeatech/items/fde620498f1d0f0d5faf )でも取り扱った “ state “ を深堀していく。

ドキュメントでは繰り返し「stateとはスナップショット」と表現されている。スナップショットって言葉普段使わないので正直あんまりピンと来ないがつまるところ「その一瞬の記録」っていうことを表現したいようだ。

レンダリング指示トリガとしての “ state “

インタラクティブなUIを記述す時、直感ではクリックなどのイベントに直接反応してUIが更新されるものだと思ってしまう。しかし、Reactではそうではなくstateを用いて更新する必要がある。

つまり、ボタンなどのイベントをonClickで記述する時、stateを記述することで再レンダリングを行うことができる。

💡 常にuseStateが必要なわけではなく、propsやContextの変更でもReactのレンダリングサイクルに反映されるみたいです。

レンダーって?Reactとの関係は?

この文脈で用いられる「レンダー」とは、Reactが関数コンポーネントを呼び出すということであり、関数からreturnされるJSXはUIのその一瞬を抜き出したスナップショットのようなものである。

また、そのJSX内のあらゆるものは “ レンダー時のstate “ を使用して計算される。

つまり、stateがすべてのたねということだ。

ここで注意すべき点が、JSXから渡されるUIのスナップショットはインタラクティブであるという点だ。つまり、静止した画像ではなく、ユーザーから入力によるイベントのロジックが組み込まれているスナップショットということ。

話をまとめると、以下のような流れになる。

  1. stateの更新などで再レンダリングがトリガされる。
  2. Reactが関数コンポーネントを呼び出す。
  3. 関数コンポーネントはstateを元に計算を行いJSXを生成、returnする。
  4. ReactがreturnされたJSXを元にDOMを比較し差分を更新


🚀 宣伝コーナー

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

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

1. CAN I DO THIS

📜概要

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

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

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

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

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

✨ 主な機能

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

🔗 今すぐ試す

Discussion