-
状態管理: useコンポーネントフックは、状態を管理するための便利な手段です。useStateフックを使用すると、コンポーネント内で状態を宣言し、その状態を更新することができます。例えば、以下のコードでは、カウンターの状態を管理しています。
import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); const increment = () => { setCount(count + 1); }; return ( <div> <p>Count: {count}</p> <button onClick={increment}>Increment</button> </div> ); }
-
副作用の処理: useコンポーネントフックは、副作用の処理にも使用できます。useEffectフックを使用すると、コンポーネントのレンダリング後に実行される副作用のコードを指定できます。例えば、以下のコードでは、コンポーネントがマウントされた後にAPIからデータを取得しています。
import React, { useState, useEffect } from 'react'; function DataFetcher() { const [data, setData] = useState(null); useEffect(() => { const fetchData = async () => { const response = await fetch('https://api.example.com/data'); const data = await response.json(); setData(data); }; fetchData(); }, []); return <div>{data ? <p>Data: {data}</p> : <p>Loading...</p>}</div>; }
-
カスタムフックの作成: useコンポーネントフックを使用して、独自のカスタムフックを作成することもできます。カスタムフックは、ロジックを再利用するための便利な方法です。例えば、以下のコードでは、フォームのバリデーションロジックをカスタムフックとして切り出しています。
import React, { useState } from 'react'; function useFormValidation(initialState) { const [values, setValues] = useState(initialState); const [errors, setErrors] = useState({}); const handleChange = (event) => { setValues({ ...values, [event.target.name]: event.target.value }); }; const handleSubmit = (event) => { event.preventDefault(); // バリデーションロジックを実行し、エラーを設定する const validationErrors = validate(values); setErrors(validationErrors); // エラーがなければフォームを送信する if (Object.keys(validationErrors).length === 0) { submitForm(); } }; return { values, errors, handleChange, handleSubmit }; } function Form() { const { values, errors, handleChange, handleSubmit } = useFormValidation({ name: '', email: '', }); return ( <form onSubmit={handleSubmit}> <input type="text" name="name" value={values.name} onChange={handleChange} /> <input type="email" name="email" value={values.email} onChange={handleChange} /> {errors.name && <p>{errors.name}</p>} {errors.email && <p>{errorsemail}</p>} <button type="submit">Submit</button> </form> ); }
Reactのuseコンポーネントフックを使用することで、状態管理や副作用の処理を効果的に行うことができます。上記の例では、useStateフックとuseEffectフックを使用した基本的な使い方や、カスタムフックの作成方法を紹介しました。これらの例を参考にしながら、自分のReactプロジェクトでuseコンポーネントフックを活用してみてください。