1. カスタムフックとは何か
簡単に言えば、カスタム フックを使用すると、特定のコンポーネント ロジックを再利用可能な関数に抽出できます。 カスタム フックは、 useから始まる他のフックを呼び出す JavaScript 関数です。 2. カスタムフックを使用しない場合例1:ページ全体でユーザーのマウス移動の座標を取得する必要がある場合、フックコードを使用せずに次のように記述できます。 const [位置、setPosition] = useState({ x: 0, 年: 0 }) 使用効果(() => { 定数移動 = (e) => { setPosition({ x: ex, y: ey }) } document.addEventListener('mousemove', 移動) 戻り値 () => { document.removeEventListener('mousemove', 移動) } }, []) 戻る ( <div> x:{位置.x} y:{位置.y} </div> ) 例 2: ページにマウスを追従する画像がある場合、フック コードを使用せずに次のように記述することもできます。 const [位置、setPosition] = useState({ x: 0, 年: 0 }) 使用効果(() => { 定数移動 = (e) => { setPosition({ x: ex, y: ey }) } document.addEventListener('mousemove', 移動) 戻り値 () => { document.removeEventListener('mousemove', 移動) } }, []) 戻る ( <div> <画像 画像 スタイル={{ 位置: '絶対'、 上: position.y, 左: position.x、 }} 代替案="" /> </div> ) 明らかに、上記の 2 つの例ではプレゼンテーション効果が異なりますが、使用されるロジック コードはほぼ同じです。フックを使用してロジック コードを再利用できます。 3. カスタムフックを使用する上記の2つの例から再利用可能なロジックコードを抽出し、useMousePositionという新しいファイルを作成します。 'react' から { useState, useEffect } をインポートします。 デフォルト関数 useMousePosition() をエクスポートします。 const [位置、setPosition] = useState({ x: 0, 年: 0 }) 使用効果(() => { 定数移動 = (e) => { setPosition({ x: ex, y: ey }) } document.addEventListener('mousemove', 移動) 戻り値 () => { document.removeEventListener('mousemove', 移動) } }, []) 戻る位置 } この機能は useMousePosition 関数で抽出しました。これで、使いたい場所にインポートできるようになりました。 最後に、通常の関数のように使用します 定数位置 = useMousePosition() 戻る ( <div> x:{位置.x} y:{位置.y} </div> ) 明らかにコード量は減っている これで、React でカスタム フックを作成する方法に関するこの記事は終了です。React カスタム フックに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: docker compose を使用して consul クラスタ環境を構築する例
>>: HTML でのテキストエリアの使用と一般的な問題およびケース分析
zabbix_agent のデプロイメント:推奨事項: zabbix_agent は docker-...
基本的な紹介前回の記事では、CSS3 のフレックスボックスを紹介しました。今日は、CSS3 のもう ...
シナリオ要件1. zabbix_server Web インターフェースのスクリプト機能を使用すると、...
XHTML は現在国際的に推奨されている標準的な Web サイト設計言語です。Webjx.com も...
目次序文1. MySQLをアンインストールする2. MySQLをインストールする要約する序文学習中に...
目次1. データベース内の MySQL ステータスを確認します。 2. 設定ファイルを変更します。 ...
自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...
一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順!importan...
聞く: CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこ...
目次マルチ環境構成とは何ですか? また、なぜそれが必要なのですか? .env ファイルはどこで設定さ...
/etc/my.cnf または /etc/mysql/my.cnf ファイルを変更する [クライアン...
この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...
目次序文1. サービスプログラムをインストールする2. メイン設定ファイルを書く3. サブ構成ファイ...
1. MySQLデータベースをダウンロードし、インストールして設定するダウンロードアドレス: htt...
1. カラーマッチング効果のプレビュー下の GIF に示すように、ボタンの背景色が徐々に薄くなると...