React入門 - 基本概念を理解する
📅 2024-07-01•🏷️ プログラミング
React入門 - 基本概念を理解する
Reactを学び始める際に最初に理解すべき基本概念について説明します。
Reactとは
ReactはFacebook(現Meta)が開発したJavaScriptライブラリで、ユーザーインターフェース(UI)を構築するために使用されます。
主な特徴
- コンポーネントベース: UIを再利用可能なコンポーネントに分割
- 宣言的: 「どのように」ではなく「何を」表示するかを記述
- Virtual DOM: 効率的なDOM更新
基本概念
1. コンポーネント
Reactアプリケーションは複数のコンポーネントで構成されます。
// 関数コンポーネント
function Welcome(props) {
return <h1>Hello, {props.name}!</h1>;
}
// 使用例
function App() {
return (
<div>
<Welcome name="Alice" />
<Welcome name="Bob" />
</div>
);
}
2. Props(プロパティ)
親コンポーネントから子コンポーネントにデータを渡すために使用します。
function UserCard({ name, email, avatar }) {
return (
<div className="user-card">
<img src={avatar} alt={name} />
<h3>{name}</h3>
<p>{email}</p>
</div>
);
}
注意: propsは読み取り専用です。子コンポーネント内でpropsの値を変更することはできません。
3. State(状態)
コンポーネント内で変化するデータを管理するために使用します。
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>カウント: {count}</p>
<button onClick={() => setCount(count + 1)}>
+1
</button>
<button onClick={() => setCount(count - 1)}>
-1
</button>
</div>
);
}
フック(Hooks)
React 16.8で導入されたフックにより、関数コンポーネントでもstateやライフサイクルを扱えるようになりました。
よく使用されるフック
| フック | 用途 |
|--------|------|
| useState
| stateの管理 |
| useEffect
| 副作用の処理 |
| useContext
| コンテキストの使用 |
| useMemo
| 値のメモ化 |
| useCallback
| 関数のメモ化 |
useEffectの例
import { useState, useEffect } from 'react';
function UserProfile({ userId }) {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
async function fetchUser() {
try {
const response = await fetch(`/api/users/${userId}`);
const userData = await response.json();
setUser(userData);
} catch (error) {
console.error('ユーザー情報の取得に失敗しました:', error);
} finally {
setLoading(false);
}
}
fetchUser();
}, [userId]); // userIdが変更された時に実行
if (loading) return <div>読み込み中...</div>;
if (!user) return <div>ユーザーが見つかりません</div>;
return (
<div>
<h2>{user.name}</h2>
<p>{user.email}</p>
</div>
);
}
まとめ
Reactの基本概念を理解することで、効率的なWebアプリケーションを構築できるようになります。
注意: この記事は基礎的な内容を扱っています。実際のプロジェクトでは、パフォーマンス最適化やエラーハンドリングなど、より高度なトピックも重要になります。
次回は、Reactのパフォーマンス最適化について詳しく解説する予定です。
参考リンク
Share: