Refsとは何かRef は、レンダリング メソッドで作成された DOM ノードまたは React 要素にアクセスできるようにする方法を提供します。 参照 Ref 転送は、特定のコンポーネントが ref を受信してそれを子コンポーネントに渡す (つまり、「転送する」) ことを可能にするオプションの機能です。 デフォルトでは、関数コンポーネントにはインスタンスがないため、ref 属性は使用できません。 1. 文字列参照文字列参照にいくつかの問題があるため、このメソッドを使用することはお勧めしません。これは非推奨であり、将来のバージョンで削除される可能性があります。 「react」からReactをインポートします。 // 親コンポーネントのエクスポート デフォルトクラス StringRef は React.PureComponent を拡張します { コンポーネントマウント() { console.log("stringRefDom:", this.refs.stringRefDom); console.log("stringRefComp:", this.refs.stringRefComp); } 与える() { 戻る ( <div> ネイティブ コンポーネントの使用方法*/ <div ref={"stringRefDom"}>文字列参照Dom</div> クラスコンポーネントの使用方法*/ <StringRefComp ref={"stringRefComp"} /> </div> ); } } //クラスコンポーネントクラスStringRefCompはReact.PureComponentを拡張します{ 与える() { <div>StringRefComp</div> を返します。 } } 2. コールバック参照
「react」からReactをインポートします。 // 親コンポーネントのエクスポート デフォルトクラス CallbackRef は React.PureComponent を拡張します { コンストラクタ(props) { スーパー(小道具); this.callbackRefDom = null; this.callbackRefComp = null; } コンポーネントマウント() { console.log("コールバックRefDom:", this.callbackRefDom); console.log("コールバックRefComp:", this.callbackRefComp); } //コールバック関数 setCallbackRefDom = (ref) => { this.callbackRefDom = ref; }; setCallbackRefComp = (ref) => { this.callbackRefComp = ref; }; //コールバック関数render() { 戻る ( <div> <div ref={this.setCallbackRefDom}>コールバックRefDom</div> <CallbackRefComp ref={this.setCallbackRefComp} /> </div> ); } } //クラスコンポーネントクラスCallbackRefCompはReact.PureComponentを拡張します{ 与える() { <div>callbackRefComp</div> を返します。 } } React.createRef()
「react」からReactをインポートします。 // 親コンポーネントのエクスポート デフォルトクラス CreateRef は React.PureComponent を拡張します { コンストラクタ(props) { スーパー(小道具); React のインスタンスを作成します。 this.createRefComp = React.createRef(); } コンポーネントマウント() { console.log("createRefDom:", this.createRefDom.current); console.log("createRefComp:", this.createRefComp.current); } 与える() { 戻る ( <div> <div ref={this.createRefDom}>RefDom を作成します</div> <CreateRefComp ref={this.createRefComp} /> </div> ); } } //クラスコンポーネントクラスCreateRefCompはReact.PureComponentを拡張します{ 与える() { <div>CreateRefComp</div> を返します。 } } 4. 参照
React をインポートし、{useEffect} を "react" から取得します。 // 親コンポーネント const UseRef = React.memo(() => { // // 以下も使用できます // const createRefDom = React.createRef(); // const createRefComp = React.createRef(); React のインスタンスを 1 つ作成します。 React のインスタンスを作成します。 使用効果(() => { console.log("useRefDom:", createRefDom.current); console.log("useRefComp:", createRefComp.current); }, []); 戻る ( <div> <div ref={createRefDom}>useRefDom</div> <UseRefComp ref={createRefComp} /> </div> ); }); デフォルトのUseRefをエクスポートします。 //クラスコンポーネントクラスUseRefCompはReact.PureComponentを拡張します{ 与える() { <div>useRefComp</div> を返します。 } } 5. 参照と関数コンポーネント
「react」から React をインポートし、{useEffect、useImperativeHandle} を追加します。 // 親コンポーネント const ForwardRef = React.memo(() => { React のインスタンスを作成します。 React の RefCompMethod を const として定義します。 使用効果(() => { console.log("useRefComp:", createRefComp.current); console.log("createRefCompMethod:", createRefCompMethod.current); createRefComp.current.reload(); }, []); 戻る ( <div> <ForwardRefFunc ref={createRefComp} /> </div> ); }); デフォルトの ForwardRef をエクスポートします。 const RefFunc = React.forwardRef((props, ref) => { const [name, setName] = React.useState(null); 定数リロード = () => { console.log("リロード"); タイムアウトを設定する(() => { 名前を設定します("ForwardRefFunc"); }, 3000); }; //useImperativeHandle を使用すると、refuseImperativeHandle(ref, () => { を使用するときに親コンポーネントに公開されるインスタンス値をカスタマイズできます。 戻る { リロード: リロード、 }; }); <div ref={ref}>ForwardRefFunc {name}</div> を返します。 }); React の RefFunc を実装します。 forwardRef と useImperativeHandle の最終的な目標は、呼び出し可能なオブジェクトを参照に提供することです。
要約するこれで、React での ref の一般的な使用法に関するこの記事は終了です。React での ref の使用法の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
はじめに: Lynis は、徹底的なセキュリティ スキャンを実行できる Unix システム用のセキュ...
jsvc の紹介実稼働環境では、Tomcat はデーモン モードで実行する必要があります。Tomc...
この記事では、セキュリティ、使用方法、同時処理などを通じて、MySQL トランザクションとデータの一...
1. スタイルシートの先頭にコメント ブロックを追加して、スタイルシートの作成日、作成者、タグ、その...
MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...
一般的に、テーブルを使用する場合は、常に <table border="1"...
wgetコマンドを使用して、親ディレクトリの下のサブディレクトリ全体をダウンロードします。親ディレク...
序文トランザクション データ ディクショナリとアトミック DDL は、MySQL 8.0 で導入され...
1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...
この記事では、JD.comのカルーセル効果の表示を実現するためのJavaScriptの具体的なコード...
プライベート フィルターとグローバル フィルターのメソッドと概念は同じですが、プライベート フィルタ...
序文スクロールやサイズ変更などのスクロール イベントがトリガーされると、トリガーの頻度が非常に高くな...
今日は折り紙飛行機(飛べる飛行機)を作ります基本的にすべてCSSで実装されており、JSはごく一部に過...
目次ステップ1: フレームワークを構築するステップ2 構築されたPromiseフレームワークに入力す...
目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...