- はじめに
今日はReact Hooksについて学びましょう。Hooksは、関数コンポーネントで状態や他のReact機能を使う方法で、より強力で使いやすくなります。GeekとGalという2人のキャラクターと一緒に、React Hooksを探検しましょう!
React Hooksは、Reactの関数コンポーネントにとって画期的なものなのよ!
Hooksは、関数コンポーネントで状態やライフサイクル機能を使うことができ、より柔軟でメンテナンスが容易になります。一般的なHooksは、
useState
と
useEffect
です。
useState
フックは、関数コンポーネントに状態を追加することができます。現在の状態値とそれを更新する関数の2つの要素を持つ配列を返します。
もちろん!
useState
を使った関数コンポーネントの簡単な例を見てください:
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>カウント: {count}</p>
<button onClick={() => setCount(count + 1)}>インクリメント</button>
</div>
);
}
なるほど!
useState
を使って関数コンポーネントに状態を追加し、現在の状態値と更新関数を返すんだね。
その通り!関数コンポーネントをより強力で使いやすくするわ。
useEffect
フックは、関数コンポーネントで副作用を実行することができます。データの取得やDOMの更新などです。これはクラスコンポーネントのライフサイクルメソッドに似ています。
もちろん!
useEffect
を使って関数コンポーネントでデータを取得する例を見てください:
import React, { useState, useEffect } from 'react';
function DataFetcher() {
const [data, setData] = useState([]);
useEffect(() => {
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
setData(data);
}
fetchData();
}, []);
return (
<div>
{data.map((item) => (
<p key={item.id}>{item.name}</p>
))}
</div>
);
}
なるほど!
useEffect
を使って関数コンポーネントで副作用を実行できるんだね。さらに強力になるね!
まさに!
useState
や
useEffect
のようなフックを使うことで、関数コンポーネントはより多機能でメンテナンスが容易になりました。
もちろん!フックを使ってランダムなジョークを表示する関数コンポーネントを作ってみましょう!
import React, { useState, useEffect } from 'react';
function RandomJoke() {
const [joke, setJoke] = useState('');
useEffect(() => {
async function fetchJoke() {
const response = await fetch('https://api.example.com/random-joke');
const data = await response.json();
setJoke(data.joke);
}
fetchJoke();
}, []);
return (
<div>
<p>{joke}</p>
</div>
);
}