ホームページ >ウェブフロントエンド >jsチュートリアル >useLocalStorage フックを使用した React でのローカル ストレージの管理

useLocalStorage フックを使用した React でのローカル ストレージの管理

Susan Sarandon
Susan Sarandonオリジナル
2025-01-27 02:44:37140ブラウズ

Managing Local Storage in React with useLocalStorage Hook

この記事では、効率的なローカル ストレージ管理のための再利用可能な useLocalStorage React フックの構築について説明します。 これにより、React アプリケーションでの永続データの処理が簡素化され、クリーンでタイプセーフなアプローチが提供されます。

1.ローカル ストレージ ユーティリティの機能

フックを作成する前に、localStorage と対話するためのヘルパー関数を構築します。

  • setItem(key: string, value: unknown): データを localStorage に安全に保存します。 JSON.stringify を使用して値をシリアル化し、コンソールにログを記録することで潜在的なエラー (ストレージ制限の超過など) を処理します。

  • getItem<T>(key: string): T | undefined: localStorage からデータを取得して解析します。 タイプセーフのために TypeScript ジェネリックス (<T>) を使用し、キーが存在しない場合は undefined を返します。 エラー処理が含まれています。

  • removeItem(key: string): localStorage からキーと値のペアを削除します。これにはエラー処理も含まれます。

2. useLocalStorage フック

このソリューションの核心は useLocalStorage フックです:

  • 初期化: フックは、パラメータとして key (localStorage の場合) と initialValue を受け取ります。 useState を使用して状態を初期化し、localStorage で既存のデータをチェックします。見つからない場合は、initialValue が使用されます。

  • 状態更新 (handleDispatch): この関数は、コンポーネントの状態と localStorage の両方を更新します。新しい値または関数 (以前の状態に基づいて更新するため) を受け入れ、同期を確保します。

  • 状態クリアリング (clearState): この関数は状態を undefined にリセットし、localStorage から項目を削除します。

  • 戻り値: フックは配列 [value, handleDispatch, clearState] を返し、現在の値、更新関数、およびクリア関数へのアクセスを提供します。

3.フックの使用

React コンポーネントで useLocalStorage を使用する方法は次のとおりです:

<code class="language-javascript">import useLocalStorage from "./useLocalStorage"; // Path to your hook file

function Counter() {
  const [count, setCount, clearCount] = useLocalStorage<number>("counter", 0);

  return (
    <div>
      <h1>Counter: {count}</h1>
      <button onClick={() => setCount((prev) => prev + 1)}>Increment</button>
      <button onClick={() => setCount((prev) => prev - 1)}>Decrement</button>
      <button onClick={clearCount}>Reset</button>
    </div>
  );
}</code>

この例は、永続的なカウンター機能を示しています。 count 値は localStorage に保存され、ページがリロードされても存続します。

完全なコード (localStorage.ts および useLocalStorage.ts)

localStorage.tsuseLocalStorage.ts の完全なコードは元の入力で提供され、変更されません。

結論

このカスタム フックは、localStorage を使用して React アプリケーションの永続データを管理するための、堅牢でタイプセーフで再利用可能なソリューションを提供します。 そのクリーンな API により、開発が簡素化され、コードの保守性が向上します。

以上がuseLocalStorage フックを使用した React でのローカル ストレージの管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。