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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
成果を達成するまずHTMLを使って基本的なフレームワークを構築します <本文> <...
<meta name="viewport" content="...
目次1.ソケットを作成する2. ソケットをバインドする3. 聞き手を作る。聞く4. 接続が受け入れら...
多くのプロジェクトでは、中央に灰色の分割線があり、両側に分割線がないグリッド表示の機能を実装する必要...
成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...
この記事では、Docker を使用して Centos6 に Zookeeper をデプロイする方法に...
序文最近、いくつかのフロントエンド プロジェクトに取り組んでおり、ページにいくつかのテーブルを表示す...
問題の説明ご存知のとおり、MySQL でフィールドを昇順に並べ替える SQL は次のとおりです (i...
SQL実行ステップの詳細な分析まず、ステートメントが実行される順序を見てみましょう。 (8)選択する...
たとえば、イントラネットに Jenkins サーバーがある場合、そのサーバーにアクセスするには、その...
設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...
目次1. はじめに2. 環境整備1. 基本環境3.Mysqlマスタースレーブ構成をインストールする1...
序文:この記事では、Ant Design Proログイン機能にグラフィック検証コードコンポーネントを...
1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...
1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...