ref は React の属性です。レンダー関数がコンポーネントのインスタンスを返す場合、次のコードに示すように、レンダー内の仮想 DOM ノードに ref 属性を追加できます。コードでは、render 関数は
タグを 1 つだけ返し、 タグの属性には ref 属性が追加されます。上記の ref 属性の説明は次のとおりです:
React は、render() によって出力されたコンポーネントにバインドするために使用できる非常に特別な属性をサポートしています。この特別なプロパティを使用すると、render() によって返される対応するバッキング インスタンスを参照できます。これにより、いつでも常に正しいインスタンスを取得できるようになります。
タグに ref 属性を設定する目的は何ですか?公式ドキュメントによる説明は次のとおりです。
他のコード (通常はイベント処理コード) では、this.refs.input のように、this.refs を通じてバッキング インスタンス (バッキング インスタンス) を取得します。このうち「input」は、上記でタグに設定したref属性の値です。
ref 属性を通じて、仮想 DOM に対応する実際の DOM ノードを取得することもできます。 次のコードに示すように、実際の DOM ノードを取得するには 2 つの方法があります。
<body> <script type="text/jsx"> var App = React.createClass({ render: function() { return ( <p> <input type="text" placeholder="input something..." ref="input" /> </p> ); } }); React.render( <App />, document.body ); </script> </body>
を通して ref について学びましょう。デモの使用:
ブラウザでデモを実行する効果は次のとおりです:
一番上の入力ボックスに 1 から 10 までの任意の数字を入力すると、次の 10 個の入力ボックスの対応する入力ボックスが表示されます。上の図に示すように、3 を入力すると、すぐに下の 3 番目の入力ボックスにフォーカスが取得されます。コードは次のとおりです。
<input type="text" ref="username" /> //下面4种方式都可以通过ref获取真实DOM节点 var usernameDOM = this.refs.username.getDOMNode(); var usernameDOM = React.findDOMNode(this.refs.username); var usernameDOM = this.refs['username'].getDOMNode(); var usernameDOM = React.findDOMNode(this.refs['username']);
レンダリング関数では、10 が使用されます。 HTML文書の本文部分に入力ボックスを追加し、各入力ボックスのref属性を["index"+index]に設定し、一番上の入力ボックスのhandleChange関数で入力番号と値を取得します。最後に、ref 属性の値に従って、対応する実際の DOM ノードを見つけて、その DOM ノードにフォーカスを取得します。
関連する推奨事項:
以上がReact での refs の使用に関するチュートリアルの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。