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 でのテキストエリアの使用と一般的な問題およびケース分析
背景多くのウェブサイトのデザインは、一般的にコンテンツ+フッターの2つの部分で構成されています。コン...
目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...
長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...
以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効...
1. リポジトリイメージをダウンロードする docker プルレジストリ 2. プライベートウェアハ...
VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...
HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...
目次序文1. カスタムフォーカスコマンド1. 方法1 2. 方法2 3. 方法3 2. 入力ボックス...
参照ドキュメント公式 Docker インストール ドキュメント: https://docs.dock...
スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...
この記事では、2番目のキルカウントダウンコンポーネントを実装するためのVueの具体的なコードを参考ま...
目次確認する:例の検証と組み合わせるselect クエリ ステートメントはロックされませんが、sel...
目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...
目次背景: Nginx スムーズ アップグレード ソリューションフォールバック手順要約する背景:負荷...
mysql の存在する例と存在しない例の詳細な説明テーブルA |列1 | 列1 | 列3 |テーブル...