「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > React のカスタムフック

React のカスタムフック

2024 年 11 月 4 日に公開
ブラウズ:420

Custom Hooks in React

React のカスタム フックは、複数のコンポーネント間でロジックを抽出して再利用できる強力な機能です。これにより、複雑なステートフル ロジックをカプセル化できるようになり、コンポーネントがクリーンになり、保守が容易になります。ここでは、カスタム フックの作成方法と使用方法の簡単な概要と例を示します。

カスタムフックの作成

カスタム フックは本質的には JavaScript 関数であり、その名前は use で始まり、内部で他のフックを呼び出すことができます。カウンタを管理するカスタム フックの簡単な例を次に示します:

import { useState } from 'react';

// Custom Hook: useCounter
function useCounter(initialValue = 0) {
    const [count, setCount] = useState(initialValue);

    const increment = () => setCount(c => c   1);
    const decrement = () => setCount(c => c - 1);
    const reset = () => setCount(initialValue);

    return { count, increment, decrement, reset };
}

export default useCounter;

カスタムフックの使用

useCounter フックは任意の機能コンポーネントで使用できます:

import React from 'react';
import useCounter from './useCounter';

function CounterComponent() {
    const { count, increment, decrement, reset } = useCounter(0);

    return (
        

Count: {count}

); } export default CounterComponent;

重要なポイント

  1. 命名規則: React の規則に従って、カスタム フックの名前は常に use で始まります。
  2. 再利用性: カスタム フックは複数のコンポーネント間で再利用でき、DRY (Don'trepeat Yourself) コードを促進します。
  3. 状態管理: 状態を管理し、副作用を実行し、カスタム フック内の他のフックを利用できます。

高度な例: データの取得

データをフェッチするためのより高度なカスタム フックは次のとおりです:

import { useState, useEffect } from 'react';

function useFetch(url) {
    const [data, setData] = useState(null);
    const [loading, setLoading] = useState(true);
    const [error, setError] = useState(null);

    useEffect(() => {
        const fetchData = async () => {
            try {
                const response = await fetch(url);
                if (!response.ok) throw new Error('Network response was not ok');
                const result = await response.json();
                setData(result);
            } catch (error) {
                setError(error);
            } finally {
                setLoading(false);
            }
        };

        fetchData();
    }, [url]);

    return { data, loading, error };
}

export default useFetch;

使用法

コンポーネントで useFetch フックを使用してデータをフェッチできます:

import React from 'react';
import useFetch from './useFetch';

function DataFetchingComponent() {
    const { data, loading, error } = useFetch('https://api.example.com/data');

    if (loading) return 

Loading...

; if (error) return

Error: {error.message}

; return (

Data:

{JSON.stringify(data, null, 2)}
); } export default DataFetchingComponent;
); } デフォルトの DataFetchingComponent をエクスポートします。

カスタム フックは、ロジックをカプセル化し、クリーンで保守可能な方法でコンポーネント間で機能を共有するための優れた方法です。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/imyusufakhtar/custom-hooks-in-react-2mk4?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3