React初学者のための全体像解説
はじめに
Reactを学び始めると、React本体だけでなくNode.js、npm、Vite、react-dom、TypeScriptといった名前が次々に登場します。それらの用語が全体像のどこに位置するのかを理解することで、常に現在地を把握しながら学習することができるようにすることが今回の目的です。この記事では、コードの書き方には踏み込まず、それぞれが「何の役割で、どこで働くのか」だけに絞って整理します。
全体像
React関連のものには以下のものが存在します。

実行環境を用意し、パッケージ管理ツールで部品を取得し、UIライブラリでコードを書き、ビルドツールが変換してまとめ、それを配信したあとブラウザ側でレンダラーが画面を描き、表示する、という流れになります。
ただし、Viteのようなビルドツールはコードを変換・梱包するだけで、配信後のブラウザには登場しません。実際にブラウザへ届き、実行時に働くのは、『UIライブラリで記述したコード』と、それに同梱された『react-dom』であることには注意が必要です。
種類ごとの役割と担当範囲
ここからは、全体像に登場した要素を種類ごとに見ていきます。同じ種類のなかでの選択肢は基本的に入れ替えが可能ですが、その自由度や選び方は種類ごとに異なります。
実行環境
実行環境は、JavaScriptで書かれたコードやツールを、ブラウザの外(開発者のPC上)で読み込んで動かすためのものです。npmやViteといった他の開発ツールも、この上で動きます。具体的には以下のようなものがあります。

| 名前 | 特徴 |
|---|---|
| Node.js | 最も広く使われている標準。情報や対応ツールが豊富 |
| Deno | Node.jsの作者による後発。TypeScriptをそのまま実行でき、安全性を重視 |
| Bun | 速さを重視した新しい実行環境。パッケージ管理やテストなどの機能も内蔵 |
なお、JavaScriptはブラウザでも動きますが、ブラウザとは役割が異なります。ブラウザは利用者の手元で画面を表示するためにJavaScriptを動かすのに対し、実行環境は開発者のPC上で開発作業のためにJavaScriptを動かします。ブラウザは安全のためにファイルの読み書きなどが制限されていますが、実行環境にはその制限がなく、ファイル操作やパッケージの取得といった開発に必要な処理を行えます。そのため、Reactの開発ではこの実行環境が土台になります。
パッケージ管理
パッケージ管理は、Reactなどのライブラリを取得・管理し、開発用のコマンドを実行するためのものです。開発者のPC側で働きます。具体的には以下のようなものがあります。

| 名前 | 特徴 |
|---|---|
| npm | Node.jsに同梱されており、標準でそのまま使える |
| yarn | 速さや機能面の改善を目的に登場した |
| pnpm | 部品を共有して保存し、ディスク使用量を抑えるのが特徴 |
言語
言語は、コードそのものを記述するためのものです。ブラウザが直接理解できるのはJavaScriptで、TypeScriptはそれに型を足した拡張です。具体的には以下のようなものがあります。

| 名前 | 特徴 |
|---|---|
| JavaScript | ブラウザやNode.jsがそのまま解釈できる基本の言語 |
| TypeScript | JavaScriptに型を加えた拡張。誤りを事前に検出でき、ビルド時にJavaScriptへ変換される(型情報は実行時には残らない) |
ビルドツール
ビルドツールは、書いたコードと読み込んだライブラリを、ブラウザが理解できる形に変換してひとまとめにするためのものです。開発者のPC側(ビルド時)で働き、配信後の実行時には登場しません。具体的には以下のようなものがあります。

| 名前 | 特徴 |
|---|---|
| Vite | 起動が速く、変更を即座に画面へ反映できる。現在広く使われている |
| webpack | 以前の主流。設定の自由度が高く、既存の現場で今も多く使われている |
| Rsbuild | Rust製で高速。webpackに近い使い勝手を目指している |
UIライブラリ(中核)
UIライブラリは、画面を「コンポーネント」の組み合わせとして記述するための中核です。本記事の主役であるReactがこれにあたります。同じ役割を担う代表例として、以下のようなものがあります。

| 名前 | 特徴 |
|---|---|
| React | 部品を組み合わせてUIを作る。対応ツールや情報が非常に多い |
| Vue | Reactと並んで広く使われている選択肢 |
| Svelte | あらかじめ最適化して書き出す方式で、実行時の負担が小さい |
これらは互いに代替できますが、Reactを別の系統に変えると、次に挙げるレンダラーや周辺ライブラリも、その系統の専用品に入れ替わります。
レンダラー
レンダラーは、Reactで記述した部品を、実際の出力先に描画するためのものです。実行時に働きます。React本体は「描く場所」を決めておらず、ここで出力先が決まります。他の種類と違い、好みで入れ替えるものではなく、出力先によって選ぶ点が特徴です。具体的には以下のようなものがあります。

| 名前 | 出力先 |
|---|---|
| react-dom | Web(ブラウザのDOM)。最も標準的 |
| React Native | iOS / Androidのモバイルアプリ |
| Remotion | 動画ファイル |
| React Three Fiber | 3D(WebGL) |
周辺ライブラリ
周辺ライブラリは、React本体だけでは足りない機能を、必要に応じて追加するためのものです。実行時に働きます。分野ごとに代表的なものがあり、最初からすべてを使う必要はありません。具体的には以下のようなものがあります。

| 分野 | 役割 | 代表例 |
|---|---|---|
| ルーティング | URLごとに表示する画面を切り替える | React Router |
| 状態管理 | 複数の部品で共有するデータを管理する | Zustand、Redux Toolkit |
| データ取得 | サーバー通信の結果を整理・保持する | TanStack Query |
| スタイリング | 見た目(CSS)を当てる | Tailwind CSS |
まとめ
Reactの全体像は、「言語(JS/TS)を、実行環境(Node.js)の上で、パッケージ管理(npm)が用意し、ビルドツール(Vite)が変換し、ライブラリ(React+レンダラー)が画面を作る」という役割分担で捉えると整理できます。








