以下に、useEffectフックを使用する方法といくつかのコード例を示します。
- マウント時に実行される効果を設定する例:
import React, { useEffect } from 'react';
function MyComponent() {
useEffect(() => {
// マウント時に実行される効果をここに記述する
console.log('コンポーネントがマウントされました');
// クリーンアップ関数を返すこともできます
return () => {
console.log('コンポーネントがアンマウントされました');
};
}, []); // 第2引数に空の配列を指定することで、マウント時にのみ実行される
return <div>コンポーネントの内容</div>;
}
- 特定の依存関係が変更されたときに実行される効果を設定する例:
import React, { useState, useEffect } from 'react';
function MyComponent() {
const [count, setCount] = useState(0);
useEffect(() => {
// countの値が変更されたときに実行される効果をここに記述する
console.log('countの値が変更されました');
}, [count]); // 第2引数にcountを指定することで、countの値が変更されたときにのみ実行される
return (
<div>
<p>count: {count}</p>
<button onClick={() => setCount(count + 1)}>増やす</button>
</div>
);
}
これらの例では、useEffectフックを使用してコンポーネントのライフサイクルイベントに対応する方法を示しました。必要に応じて、関数内で非同期処理やAPI呼び出しを行うこともできます。また、クリーンアップ関数を返すことで、コンポーネントがアンマウントされたときに必要な後処理を実行することもできます。