近年、Web開発の現場で欠かせない存在となっている「React」。Facebook(現Meta)が開発したこのライブラリは、シンプルかつ効率的にUIを構築できる点から世界中のエンジニアに支持されています。これからWebアプリケーション開発を学ぼうと考えている方にとって、Reactは必ず習得しておきたい技術の一つです。
しかし、「JavaScriptは少し触ったことがあるけど、Reactは難しそう」「どこから学び始めればいいのかわからない」と悩む方も多いのではないでしょうか。
本記事では、Reactの基本的な概念から環境構築、コンポーネントの作り方、状態管理、そして実際のサンプルコードまでをわかりやすく解説します。初心者がつまずきやすいポイントにも触れながら、実践的に学べる内容にしました。この記事を読み終える頃には、あなたもReactを使って簡単なWebアプリを作れるようになるはずです。
Reactは、ユーザーインターフェースを構築するためのJavaScriptライブラリです。フレームワークではなくライブラリであるため、必要な部分に組み込んで使えるのが大きな特徴です。
Reactのメリットとしては以下の点が挙げられます。
Reactを学ぶ第一歩は、開発環境を整えることです。
npx create-react-app my-app cd my-app npm start
これでローカル環境でReactアプリが立ち上がります。Reactにおける開発の最小単位が「コンポーネント」です。例えば、ボタンや入力フォーム、ナビゲーションバーなど、UIの部品を独立して作成・管理できます。
例:シンプルなコンポーネント
function Hello() {
return <h1>Hello, React!</h1>;
}
Reactでは、HTMLに似た構文をJavaScript内に記述する「JSX」を使います。これにより、直感的にUIを記述できるようになります。
コンポーネントに外部からデータを渡す仕組みです。
function Welcome(props) {
return <h1>こんにちは、{props.name}さん!</h1>;
}
コンポーネントが持つ内部データを管理する仕組みです。
import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>現在のカウント: {count}</p>
<button onClick={() => setCount(count + 1)}>増やす</button>
</div>
);
}
Reactでは、イベント処理もシンプルに書けます。
function Button() {
const handleClick = () => {
alert("クリックされました!");
};
return <button onClick={handleClick}>クリック</button>;
}
Hooksは、React v16.8から導入された新しい機能です。代表的なフックは以下です。
例:useEffectの利用
import { useState, useEffect } from "react";
function Timer() {
const [time, setTime] = useState(0);
useEffect(() => {
const interval = setInterval(() => setTime((t) => t + 1), 1000);
return () => clearInterval(interval);
}, []);
return <p>経過時間: {time}秒</p>;
}
import { useState } from "react";
function TodoApp() {
const [task, setTask] = useState("");
const [todos, setTodos] = useState([]);
const addTodo = () => {
if (task) {
setTodos([...todos, task]);
setTask("");
}
};
return (
<div>
<h1>Todoリスト</h1>
<input
value={task}
onChange={(e) => setTask(e.target.value)}
placeholder="タスクを入力"
/>
<button onClick={addTodo}>追加</button>
<ul>
{todos.map((t, index) => (
<li key={index}>{t}</li>
))}
</ul>
</div>
);
}
setState
を使う)Reactは最初は取っつきにくい印象を受けるかもしれませんが、コンポーネント・状態管理・フックの3つを理解すれば一気に開発が楽しくなります。まずは小さなコンポーネントやアプリを作り、徐々にステップアップしていくのが習得の近道です。
この記事で紹介した基礎を押さえれば、あなたもReactを使ってモダンなWebアプリケーションを開発できるようになるでしょう。