React での refs の使用に関するチュートリアルの共有

小云云
リリース: 2018-02-22 09:41:09
オリジナル
1402 人が閲覧しました

ref は React の属性です。レンダー関数がコンポーネントのインスタンスを返す場合、次のコードに示すように、レンダー内の仮想 DOM ノードに ref 属性を追加できます。コードでは、render 関数は

タグを 1 つだけ返し、 タグの属性には ref 属性が追加されます。上記の 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[&#39;username&#39;].getDOMNode(); 
var usernameDOM = React.findDOMNode(this.refs[&#39;username&#39;]);
ログイン後にコピー

レンダリング関数では、10 が使用されます。 HTML文書の本文部分に入力ボックスを追加し、各入力ボックスのref属性を["index"+index]に設定し、一番上の入力ボックスのhandleChange関数で入力番号と値を取得します。最後に、ref 属性の値に従って、対応する実際の DOM ノードを見つけて、その DOM ノードにフォーカスを取得します。

関連する推奨事項:

React コンポーネントの参照の使用例を共有する


以上がReact での refs の使用に関するチュートリアルの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート