ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
Reactは、Meta(旧Facebook)が開発・公開しているユーザーインターフェース(UI)構築用のJavaScriptライブラリです。Webアプリの画面を「コンポーネント」という再利用可能な部品に分割して組み立てる設計が特徴で、SPA(シングルページアプリケーション)や動的なUIの開発で広く使われています。Vue.jsやAngularと並ぶフロントエンドの代表格であり、求人・学習資料・エコシステムの厚さでも群を抜いています。本記事ではReactの中心概念であるコンポーネント・仮想DOM・JSX・Hooksを整理します。
Reactの主要概念
1. コンポーネントベースのアーキテクチャ
ReactはUIを小さな再利用可能な部品(コンポーネント)に分割します。ボタン、フォーム、リスト項目などを独立した部品として作り、それらを組み合わせて画面を構築します。これにより開発が効率化し、同じ部品を複数箇所で使い回せます。
2. 仮想DOM(Virtual DOM)
Reactは実際のDOMの軽量なコピー(仮想DOM)をメモリ上に保持します。状態が変化すると新旧の仮想DOMを比較(差分検出)し、変更が必要な部分だけを実DOMに反映します。DOM操作は重い処理のため、この仕組みがパフォーマンスとスムーズなユーザー体験を支えています。
3. JSX(JavaScript XML)
ReactではJSXというJavaScriptの構文拡張を使い、HTMLに似た記法でUIを記述します。見た目(マークアップ)と動作(ロジック)を同じファイル内に近接して書けるため、コンポーネントの全体像を把握しやすくなります。
// JSX:HTMLのようにUIを記述できる
function Welcome(props) {
return <h1>こんにちは、{props.name}さん</h1>;
}
4. 単方向データフローとprops/state
Reactのデータは親から子へ一方向に流れます。親が子へ渡す読み取り専用の入力がprops、コンポーネント自身が持つ可変の状態がstateです。stateが更新されると、Reactが自動的に該当コンポーネントを再描画します。
使い方・手順
現在のReactは関数コンポーネント+Hooksが標準です。状態はuseState、副作用(データ取得やイベント登録など)はuseEffectで扱います。
import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0); // 状態の宣言
return (
<div>
<p>現在のカウント: {count}</p>
<button onClick={() => setCount(count + 1)}>
+1する
</button>
</div>
);
}
export default Counter;
ボタンを押すとsetCountが状態を更新し、Reactが仮想DOMの差分を計算して画面の数字だけを書き換えます。手動でDOMを触る必要はありません。
副作用にはuseEffectを使います。例えば初回表示時にAPIからデータを取得する場合は次のように書きます。
import { useState, useEffect } from "react";
function UserList() {
const [users, setUsers] = useState([]);
useEffect(() => {
fetch("/api/users")
.then((res) => res.json())
.then((data) => setUsers(data));
}, []); // 第2引数 [] で初回のみ実行
return (
<ul>
{users.map((u) => (
<li key={u.id}>{u.name}</li>
))}
</ul>
);
}
実用例・Tips
- コンポーネント分割:1コンポーネント1責務を意識し、大きくなったら小さく分ける。再利用と保守性が上がる。
- keyを付ける:リスト描画では各要素に一意の
keyを付与する。差分検出が正確になり、無駄な再描画を防げる。 - 状態は最小限に:計算で導ける値はstateにせず、描画時に算出する。状態が増えるほどバグの温床になる。
- エコシステム活用:ルーティングはReact Router、状態管理はRedux/Zustand、フレームワークとしてはNext.jsが定番。SSRやルーティングを一括で面倒見てくれる。
注意点・落とし穴
- stateの直接変更は禁止:
count++のように直接書き換えず、必ずsetCountなどの更新関数を使う。直接変更すると再描画されない。 - useEffectの依存配列:第2引数の依存配列を誤ると、実行されない/無限ループになる。参照する値を正しく列挙する。
- Hooksのルール:Hooksはコンポーネントのトップレベルでのみ呼ぶ。条件分岐やループの中で呼ぶと壊れる。
- 過剰な再描画:不要な再描画はパフォーマンス低下の原因。
useMemoやReact.memoで最適化する。
関連リンク
Reactを実際に動かすには開発環境のセットアップが必要です。インストールとプロジェクト作成の具体的な手順はReactのインストール手順を参照してください。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?