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 でのテキストエリアの使用と一般的な問題およびケース分析
目次cgroupとはcgroupの構成cgroupが提供する機能cgroup 内の CPU を制限す...
最近データベースを学び始めたのですが、とても興味深いコースだと感じていますが、含まれる内容の多くは私...
テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...
Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...
この記事では、Linux で PHP curl 拡張機能をインストールする方法について説明します。ご...
Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...
目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...
序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...
この記事の例では、ショッピングカートの加算と減算、価格計算を実装するためのjsの具体的なコードを共有...
現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...
1. nginxソースディレクトリに新しいrtmpディレクトリを作成し、git clone http...
序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...
目次1. MySQL msiバージョンをダウンロードする2. インストール3. 環境変数を設定する1...
目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...
リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...