Back to Topics
設計パターン Reading Time: 5 min
カスタムフックの抽象化
ビジネスロジックをUIから分離し、再利用可能なカスタムフックとして抽出するテクニックを解説します。
カスタムフックの抽象化
Reactコンポーネントが肥大化していませんか?それは 「関心の分離」 ができていないサインかもしれません。
抽象化のメリット
- テストが容易になる: ロジック単体でテストできるようになります。
- UIとロジックの分離: コンポーネントは「どう表示するか」に集中できます。
- DRY原則: 同じ処理を複数の場所で書く必要がなくなります。
実践例:useLocalStorage
function useLocalStorage(key, initialValue) {
const [storedValue, setStoredValue] = useState(() => {
try {
const item = window.localStorage.getItem(key);
return item ? JSON.parse(item) : initialValue;
} catch (error) {
return initialValue;
}
});
const setValue = (value) => {
setStoredValue(value);
window.localStorage.setItem(key, JSON.stringify(value));
};
return [storedValue, setValue];
}
カスタムフックを作る際は「このフックが何をするか」という 責任 を明確にすることが重要です。
Share this Article
Next Stage Explore Roadmap