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 でのテキストエリアの使用と一般的な問題およびケース分析
目次前面に書かれた双方向暗号化エンコード/デコードAES_ENCRYPT/AES_DECRYPT D...
1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...
この記事では、WeChatアプレットで星評価を実装するための具体的なコードを参考までに紹介します。具...
1. provideとinjectの説明Provide と Inject により、ネストされたコンポ...
vue-無限スクロールインストール npm インストール vue-infinite-scroll -...
目次1. はじめに2. 本文2.1 および演算子2.2 または演算子2.3 オペレーター2.4 no...
1. スクロールの実装原理better-scroll のスクロール原理は、ブラウザのネイティブスクロ...
この記事ではMySQL 8.0.22のインストールと設定について記録します。具体的な内容は以下のとお...
私は通常、大手ウェブサイトの特別ページや製品リリースページを訪問するのが好きです。なぜなら、たくさん...
Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...
1. はじめにVagrant は、仮想マシン (VirtualBox) を構築および管理するためのツ...
目次1. vuexとは何か2. インストールと導入3. vuexの使用4. プロセスの紹介5. 突然...
ローカル データベースがサーバー データベースに接続されているときに発生する 1045 の問題を解決...
<br />ユーザーエクスペリエンスは中国のウェブサイトでますます重視されており、ユーザ...
目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...