<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ React Hooks - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ React Hooks - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 10 May 2026 13:50:00 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/tag/react-hooks/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ React Hooks を使って localStorage のデータを保存・取得する方法 ]]>
                </title>
                <description>
                    <![CDATA[ localStorage は、JavaScript を用いて作られたサイトやアプリが、有効期限なしでウェブブラウザにキー・バリュー形式のデータを保存するためのウェブストレージオブジェクトです。 つまり、保存されたデータはページを更新したり、ブラウザを再起動しても残ったままです。これは、ブラウザに保存されたデータは、ブラウザウィンドウが閉じられても残ることを意味します。 要するに、localStorage を使うことで、開発者はブラウザ内にデータを保存したり取得したりできるようになります。 しかし、localStorage をプロジェクトのデータベースとして使用するのは良い方法ではありません。 localStorage は、アプリケーションにダークモード機能を追加したり、ToDo のデータを保存したり、ユーザーのフォーム入力値を永続化したり、その他多くの場面で頻繁に使用されます。 今回は、React Hooks で localStorage を使用し、データを簡単に保存・取得する方法を見ていきましょう。 React Hooks を使って localStorage へデータを保 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-use-localstorage-with-react-hooks-to-set-and-get-items/</link>
                <guid isPermaLink="false">65034b9f0e802a03f9dba229</guid>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React Hooks ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Yuki Shibata ]]>
                </dc:creator>
                <pubDate>Thu, 07 Dec 2023 23:49:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2023/09/Yellow-and-Purple-Geometric-Covid-19-General-Facts-Twitter-Post.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-use-localstorage-with-react-hooks-to-set-and-get-items/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Use localStorage with React Hooks to Set and Get Items</a>
      </p><p>localStorage は、JavaScript を用いて作られたサイトやアプリが、有効期限なしでウェブブラウザにキー・バリュー形式のデータを保存するためのウェブストレージオブジェクトです。</p><p>つまり、保存されたデータはページを更新したり、ブラウザを再起動しても残ったままです。これは、ブラウザに保存されたデータは、ブラウザウィンドウが閉じられても残ることを意味します。</p><p>要するに、localStorage を使うことで、開発者はブラウザ内にデータを保存したり取得したりできるようになります。</p><p>しかし、localStorage をプロジェクトのデータベースとして使用するのは良い方法ではありません。</p><p>localStorage は、アプリケーションにダークモード機能を追加したり、ToDo のデータを保存したり、ユーザーのフォーム入力値を永続化したり、その他多くの場面で頻繁に使用されます。</p><p>今回は、React Hooks で localStorage を使用し、データを簡単に保存・取得する方法を見ていきましょう。</p><h3 id="react-hooks-localstorage-scrim-"><strong>React Hooks を使って localStorage へデータを保存・取得する方法についてのインタラクティブな Scrim:</strong></h3><p>(訳注: Scrimba というサイトの機能で、インタラクティブなエディタと動画がセットになっています。)</p><!--kg-card-begin: html--><iframe src="https://scrimba.com/scrim/crdLpnSG?embed=freecodecamp,mini-header" width="100%" height="480" title="Embedded content" loading="lazy"></iframe><!--kg-card-end: html--><h3 id="react-hooks-"><strong>React Hooks とは</strong></h3><p>React Hooks は、コンポーネントに機能を追加するために React から import する JavaScript の関数です。</p><p>Reat Hooks を使うことで、関数コンポーネント内で state やライフサイクルメソッドを使うことができます。また、既存のコードでも動作するため、導入も簡単です。</p><p>React Hooks を用いて localStorage を使用するには、2 つの React Hooks を使います: </p><ul><li><code>useState()</code> – アプリケーションの state は、いつか必ず変化します。<code>useState()</code> は、初期 state (変数やオブジェクト、あるいはその他のデータ型) を 1 つの引数として受け取り、現在の state とその state の更新関数を返します。</li><li><code>useEffect()</code> – この React Hooks は、デフォルトでは最初のレンダリングの後、state が変更されるたびに実行されます。名前が示すように、state が変更されるたびに副作用 (effect) を実行するために使用されます。この React Hooks は、イベントリスナーを設定したり、API からデータを取得したり、コンポーネントが DOM から削除される前にイベントリスナーを削除したりするのに最適です。</li></ul><h3 id="react-localstorage-"><strong>React で localStorage を操作する方法</strong></h3><p>ブラウザの localStorage にアクセスするためのメソッドは 5 つあります:</p><ul><li><code>setItem()</code> : キー・バリュー形式のデータを localStorage に保存します。</li><li><code>getItem()</code> : データを保存した時のキーを指定して localStorage から値を取得します。</li><li><code>removeItem()</code> : データを保存した時のキーを指定して localStorage から値を削除します。</li><li><code>clear()</code> : localStorage に保存されている全てのデータを削除します。</li><li><code>key(index)</code>: localStorage に保存されている、指定された index 番号のキー名を返します。</li></ul><p>今回は、最も使用頻度の高い <code>setItem()</code> と <code>getItem()</code> に絞って解説していきます。</p><h3 id="setitem-"><strong><code>setItem()</code> の使い方</strong></h3><p>localStorage にキーを設定すると、データを格納できます。このデータの値は、テキスト、整数、オブジェクト、配列など、どのようなデータ型でも構いません。</p><p>localStorage にデータを格納する際、そのデータを <code>JSON.stringify()</code> を使って文字列へ変換する必要があることを忘れないでください。</p><pre><code class="language-react">const [items, setItems] = useState([]);

useEffect(() =&gt; {
  localStorage.setItem('items', JSON.stringify(items));
}, [items]);</code></pre><p>上記のコードでは、まず空配列の state を作成 (配列以外のデータ型でも良い) しています。次に、<code>useEffect()</code> を使うことによって state が更新されたときに localStorage へデータを追加しています。これは <code>useEffect()</code> の第二引数に state を渡すことで実現しています。</p><p>基本的には、以下のように指定することで localStorage にキー・バリュー形式のデータを追加できます:</p><pre><code class="language-react">localStorage.setItem('items', JSON.stringify(items));</code></pre><p>つまり、先ほどのコードではキーに 'items' という名前を付け、それに値を代入しています。ただし、まず追加するデータが JSON 文字列であることを確認する必要がありましたね。</p><p><code>JSON.stringify()</code> を使用して、JSON オブジェクトを文字列である JSON テキストに変換し、ウェブサーバーに送信できるようにします。<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg" class="kg-image" alt="s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 1600w, https://www.freecodecamp.org/japanese/news/content/images/size/w2400/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 2400w" sizes="(min-width: 720px) 720px" width="2000" height="1095" loading="lazy"><figcaption>hooks が localStorage と連携してデータを格納する仕組み</figcaption></figure><h3 id="getitem-"><strong><code>getItem()</code> の使い方</strong></h3><p>このメソッドは localStorage からオブジェクトを取得します。React では他の方法もありますが、ここでは <code>useEffect()</code> を使用します。</p><p><code>useEffect()</code> は、最初のレンダリング時にすべてのアイテムを取得してくれます。つまり、コンポーネントがマウントまたは再レンダリングするたびに、localStorage からすべてのデータを取得します。</p><p><code>useEffect()</code> の第二引数を空にしているのはこのためです。</p><pre><code class="language-react">const [items, setItems] = useState([]);

useEffect(() =&gt; {
  const items = JSON.parse(localStorage.getItem('items'));
  if (items) {
   setItems(items);
  }
}, []);</code></pre><p>先ほどデータを localStorage に保存した時、データを JSON 文字列に変換したことを思い出してください。つまり、このデータを利用するためには、JSON 文字列を JSON オブジェクトに変換する必要があります。これは、<code>JSON.parse()</code> メソッドで行います。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg" class="kg-image" alt="s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 1600w, https://www.freecodecamp.org/japanese/news/content/images/size/w2400/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 2400w" sizes="(min-width: 720px) 720px" width="2000" height="1095" loading="lazy"><figcaption>hooks が localstorage と連携してアイテムを取得する仕組み</figcaption></figure><h3 id="-"><strong>まとめ</strong></h3><p>この記事では、React hooks を使って localStorage を使う方法、使うタイミングやどの hooks を使うかについて学びました。</p><p>実際にこれがどのように機能するか知りたい方は、localStorage とこれらの Hooks を使用したシンプルな ToDo リストアプリの<a href="https://github.com/olawanlejoel/Todo-App">ソースコード</a>を参照してください。</p><p>state と props の詳細については、私が書いたこちらの<a href="https://joelolawanle.com/posts/understanding-state-props-react-key-differences-explained">記事</a>で学ぶことができます。また、こちらの <a href="https://joelolawanle.com/contents">content repository</a> から、私が書いた記事の全てを閲覧できます。</p><p></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 初心者向け React フックの基礎 ]]>
                </title>
                <description>
                    <![CDATA[ React.js は、オープンソースの JavaScript ベースのユーザーインターフェイスライブラリーです。ウェブおよびモバイルアプリの開発で非常に人気があります。 React はコンポーネントベースの構成を原則としています。React のコンポーネント は、それぞれ独立していて、再利用可能なコード部分のことを指します。コンポーネントには、クラスコンポーネントと関数コンポーネントの 2 つのタイプがあります。 React バージョン 16.8 までは、開発者はクラスコンポーネントを使用してのみ、state などの React の機能を扱うことができました。しかし、バージョン 16.8 で、React にフックと呼ばれる新しいパターンが導入されました。 React のフックを使用することで、関数コンポーネントで state を含めさまざまな React の機能を使用することができます。これにより、開発者は React で関数型プログラミングを実行できるようになりました。 この記事では、React フックについての基礎を学んでいきます。この記事を書く背景には、「React のフ ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/react-hooks-fundamentals/</link>
                <guid isPermaLink="false">6463b0d4e981370655a5ff10</guid>
                
                    <category>
                        <![CDATA[ React Hooks ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Saki Basken ]]>
                </dc:creator>
                <pubDate>Wed, 24 May 2023 13:40:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2023/05/freeCodeCamp-Cover.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/react-hooks-fundamentals/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">React Hooks Fundamentals for Beginners</a>
      </p><p>React.js は、オープンソースの JavaScript ベースのユーザーインターフェイスライブラリーです。ウェブおよびモバイルアプリの開発で非常に人気があります。</p><p>React は<code>コンポーネントベース</code>の構成を原則としています。React の<code>コンポーネント</code>は、それぞれ独立していて、再利用可能なコード部分のことを指します。コンポーネントには、クラスコンポーネントと関数コンポーネントの 2 つのタイプがあります。</p><p>React バージョン 16.8 までは、開発者はクラスコンポーネントを使用してのみ、state などの React の機能を扱うことができました。しかし、バージョン 16.8 で、React に<code>フック</code>と呼ばれる新しいパターンが導入されました。</p><p>React のフックを使用することで、関数コンポーネントで state を含めさまざまな React の機能を使用することができます。これにより、開発者は React で関数型プログラミングを実行できるようになりました。</p><p>この記事では、<code>React フック</code>についての基礎を学んでいきます。この記事を書く背景には、「React のフックは学びやすく、作成や使用も簡単」という考え方を初心者の方々に持ってもらいたいという思いがあります。基礎さえしっかり理解していれば、本当に簡単なのです。</p><p>もし動画で学ぶことがお好きなら、この記事の内容はビデオチュートリアルでもご利用いただけます。ぜひこちらからご覧ください🙂</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/CvNvRaS3u60?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" title="06 - What are React Hooks - An Introduction to React Hooks - Functional Components - ReactJS" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h2 id="-">フックについて学ぶ前に</h2><p>フックの前に、まず基本の <code>JavaScript の関数</code> (バニラ JS の関数) について考えてみましょう。</p><p>JavaScript というプログラミング言語では、関数は繰り返し行うタスクのための再利用可能なコードロジックです。関数はコンポーザブル (合成可能) です。つまり、関数を別の関数内で呼び出してその出力を使用することができます。</p><p>以下の図では、関数 <code>someFunction()</code> が関数 <code>a()</code> と <code>b()</code> をコンポーズ (合成使用) しています。<code>b()</code> の関数は関数 <code>c()</code> を使用しています。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/05/some-function.png" class="kg-image" alt="some-function" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/05/some-function.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/05/some-function.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2023/05/some-function.png 1253w" sizes="(min-width: 720px) 720px" width="1253" height="660" loading="lazy"><figcaption>関数のコンポーザビリティー (合成可能性)</figcaption></figure><p>これをコードで書くと、次のようになります。</p><pre><code class="language-js">function a() {
    // some code
}

function c() {
    // some code
}

function b() {
    // some code
    
    c();
    
    // some code
}

function someFunction() {
    // some code
    
	a();
    b();
    
    // some code
}</code></pre><p>React の関数コンポーネントが単なるバニラ JavaScript の関数であることは周知の事実です。したがって、関数が合成可能な場合、React コンポーネントも<br>合成可能な性質を持つことになります。以下の図のように、これは 1 つ以上のコンポーネントを別のコンポーネントに合成使用できることを意味します。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/05/Component-A.png" class="kg-image" alt="Component-A" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/05/Component-A.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/05/Component-A.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2023/05/Component-A.png 1248w" sizes="(min-width: 720px) 720px" width="1248" height="650" loading="lazy"><figcaption>コンポーネントのコンポーザビリティー (合成可能性)</figcaption></figure><h2 id="--1">ステートフルコンポーネントとステートレスコンポーネント</h2><p>React のコンポーネントには、state を持つものと、持たないものがあります。</p><ul><li>state を持つコンポーネントは、その中で状態を確立し管理します。</li><li>state を持たないコンポーネントは、状態や副作用の管理をしない、純粋な関数です。</li></ul><p><a href="https://blog.greenroots.info/what-are-pure-functions-and-side-effects-in-javascript">純粋関数</a>とは、副作用のない関数のことです。つまりこれは、関数が同じ入力に対して常に同じ出力を返す、ということを意味します。</p><p>関数コンポーネントから、state や副作用のロジックを取り除けば、state を持たないステートレスコンポーネントになります。また、取り除いた state を持つロジックや副作用のロジックは、アプリ内の他の場所で再利用することもできます。そのため、それらをできる限りコンポーネントから隔離することが、合理的なのです。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/05/Stateless-Component.png" class="kg-image" alt="Stateless-Component" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/05/Stateless-Component.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/05/Stateless-Component.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2023/05/Stateless-Component.png 1251w" sizes="(min-width: 720px) 720px" width="1251" height="647" loading="lazy"><figcaption>状態に関するロジックを持つ、ステートフルコンポーネント</figcaption></figure><h2 id="react-">React フックとステートフルロジック</h2><p>React フックを使用することで、ステートフルロジックと副作用を関数コンポーネントから切り離すことができます。フックとは、状態の変化や副作用をコンポーネントから切り離して管理することができる、JavaScript の関数のことです。</p><p>これにより、すべてのステートフルロジックをフックとして分離し、他のコンポーネントに使用できるようになるのです。(フックも関数であるため、合成可能。)</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/05/stateless-component.png" class="kg-image" alt="stateless-component" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/05/stateless-component.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/05/stateless-component.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2023/05/stateless-component.png 1531w" sizes="(min-width: 720px) 720px" width="1531" height="663" loading="lazy"><figcaption>ステイトフルロジックをフックとして切り離した状態</figcaption></figure><p>では、このステートフルロジックとは何なのでしょうか？状態変数をローカルで宣言および管理しているものであれば、何でも当てはまります。</p><p>たとえば、データをフェッチし、ローカル変数でデータを管理するロジックは「ステートフル」ということになります。複数のコンポーネントでそのような取得ロジックを再利用すると良い場合もあります。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/05/component-abc.png" class="kg-image" alt="component-abc" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/05/component-abc.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/05/component-abc.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2023/05/component-abc.png 1539w" sizes="(min-width: 720px) 720px" width="1539" height="787" loading="lazy"></figure><h2 id="-react-"><strong>では、React フックとは一体なんなのでしょうか？</strong></h2><p>React フックをわかりやすい言葉で定義するとどうなるでしょうか。関数、コンポーザビリティー、コンポーネント、状態、副作用について理解した今、React フックとは何かをご説明します。</p><blockquote>React フックとは、関数コンポーネント内の再利用可能な部分を切り離して使用できるシンプルな JavaScript の関数です。フックは状態を持つことができ、副作用を管理することもできます。</blockquote><p>React は、標準の組み込みフックを多数提供しています。</p><ul><li><code>useState</code>: 状態を管理するためのフックです。状態の値と、それを更新するための更新関数を返します。</li><li><code>useEffect</code>: API 呼び出し、サブスクリプション、タイマー、ミューテイションなどのような副作用を管理するためのフックです。</li><li><code>useContext</code>: コンテキストの現在の値を返します。</li><li><code>useReducer</code>: 複雑な状態管理をサポートするための、<code>useState</code> の代替となるフックです。</li><li><code>useCallback</code>: 子コンポーネントが必要以上にレンダリングされないように、コールバックをメモ化されたものを返します。</li><li><code>useMemo</code>: パフォーマンスの最適化に役立つメモ化された値を返します。</li><li><code>useRef</code>: <code>.current</code> プロパティを持つ ref オブジェクトを返します。そのような ref オブジェクトはミュータブル (変更可能) です。これは主に子コンポーネントに直接アクセスするために使用されます。</li><li><code>useLayoutEffect</code>: すべての DOM ミューテーションの最後に始動します。<code>useLayoutEffect</code> は同期的に始動するため、できればこれよりも <code>useEffect</code> を使用する方がオススメです。</li><li><code>useDebugValue</code>: React DevTools でカスタムフックのラベルを表示するのに役立ちます。</li></ul><p>これらのフックについて詳しくは、<a href="https://ja.legacy.reactjs.org/docs/hooks-reference.html">こちら</a>から読むことができます。全てのフック名が use で始まることに注目してください。これは React コードベースでフックを素早く特定するための標準的な慣例です。</p><p>データのフェッチ、ディスクへのログ、タイマーなど、様々な用途に合わせて独自のカスタムフックを作成することもできます。</p><p>なのでもし、コードベースで React フックを見かけたり、作成するように求められた場合は、心配しないでください。それは、単に関数コンポーネントの外で状態や副作用を扱うための別の JavaScript 関数なだけなのです。</p><p>カスタムフックを作成するためのステップバイステップガイドをお探しであれば、<a href="https://blog.greenroots.info/how-to-create-a-countdown-timer-using-react-hooks">この記事</a>が役立つかもしれません。</p><h2 id="--2"><strong>最後に</strong></h2><p>この React フックの紹介が少しでもお役に立てば幸いです。React 経験も長くなり、React のあらゆる側面を網羅することを目指した YouTube 動画シリーズを始めました。もしお役に立てそうであれば、ぜひチャンネル登録をお願いします。</p><p>私は、次のプラットフォームでも JavaScript、ウェブ開発、ブログについて学んだことを共有しているので、ぜひ繋がりましょう。</p><ul><li><a href="https://twitter.com/tapasadhikary">Twitter でフォローする</a></li><li><a href="https://github.com/atapas">GitHub でサイドプロジェクトを見る</a></li></ul><p>それではまた、次の記事でお会いしましょう。それまで、心身ともに体に気をつけてお過ごしください。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
