Reactはなぜフロントエンドのデファクトスタンダードなのか
React(リアクト)はMeta(旧Facebook)が開発したJavaScriptライブラリで、UIを構築するために世界中で使われています。
コンポーネントベースの設計と仮想DOMによる高速な描画更新が特徴で、フロントエンドエンジニアの必須スキルの1つです。
Reactの基本概念
コンポーネント
Reactではページを「コンポーネント」という部品に分割して管理します。
// シンプルなコンポーネントの例
function Greeting({ name }) {
return <h1>こんにちは、{name}さん!</h1>;
}
// 使い方
<Greeting name="田中" />
関数コンポーネントが現在の標準形式です。
JSX
JSXはJavaScriptの中にHTMLのような記法を書ける構文です。
const element = (
<div className="container">
<h1>タイトル</h1>
<p>テキストコンテンツ</p>
</div>
);
classの代わりにclassNameを使う点に注意しましょう。
stateとuseState
stateはコンポーネントが持つ「内部状態」です。stateが変わるとコンポーネントが再描画されます。
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>カウント: {count}</p>
<button onClick={() => setCount(count + 1)}>
+1
</button>
</div>
);
}
useStateは現在の値と更新関数をペアで返すフックです。
useEffectで副作用を扱う
APIからデータを取得したり、タイマーを設定する「副作用」はuseEffectで管理します。
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(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
Reactプロジェクトの始め方
# Viteで新しいReactプロジェクトを作成(推奨)
npm create vite@latest my-app -- --template react
cd my-app
npm install
npm run dev
まとめ
Reactはコンポーネント・JSX・useState・useEffectの4つを理解するだけで基本的なUIが作れます。まずはカウンターアプリやToDoアプリを作りながら、実際に手を動かすことで理解が深まります。





