React の 3 つの主要属性における Ref の使用に関する詳細な説明

React の 3 つの主要属性における Ref の使用に関する詳細な説明

Refs は、React で JSX コンポーネントまたは DOM 内の何らかの状態値を取得するときにノードを取得するために使用されるメソッドです。 Reactの公式説明では、その適用範囲は次のようになっています。

  • フォーカス、テキスト選択、またはメディアの再生を管理します。
  • 強制アニメーションをトリガーします。
  • サードパーティの DOM ライブラリを統合します。

Reactのドキュメントでは、refsを使いすぎないようにすることが繰り返し強調されているので、DOMネイティブオブジェクトを使って解決できる場合は、refsを使わないようにしましょう。これまでの書き方に従って、まずクラスコンポーネントと関数コンポーネントでのrefsの書き方を示します。

クラスコンポーネント

クラスでは、ref を使用する方法が 3 つあります。最もよく使用されるのはコールバックです。

// refs を直接定義します。非推奨のクラス App は React.PureComponent を拡張します{
    入力の変更 = ()=>{
        const {入力} = this.refs
    }
    与える() {
        戻る (
            <div>
                <input type="text" placeholder={"値を入力してください"} onBlur={this.changeInput} ref={"input"}/>
            </div>
        )
    }
}

//コールバックフォームで使用するクラス App extends React.PureComponent{
    入力の変更 = ()=>{
        コンソールにログ出力します。
    }
    与える() {
        戻る (
            <div>
                <input type="text" placeholder={"値を入力してください"} onBlur={this.changeInput} ref={(el)=>{this.inputRef = el}}/>
            </div>
        )
    }
}

//createRefを使用する
クラスAppはReact.PureComponentを拡張します{
    入力Ref = React.createRef()
    入力の変更 = ()=>{
        コンソールにログ出力します。
    }
    与える() {
        戻る (
            <div>
                <input type="text" placeholder={"値を入力してください"} onBlur={this.changeInput} ref={this.inputRef}/>
            </div>
        )
    }
}

上記はクラスコンポーネントのRefを書く3つの方法です

機能コンポーネント

関数App(){
    定数 inputRef = useRef("")
    戻る (
        <div>
            <input type="text" placeholder={"値を入力してください"} ref={inputRef}/>
        </div>
    )
}

useRefを使用してコードを直接完成させる

インタビューのよくある質問: React における ref の役割は何ですか?

Ref は、React が DOM 要素またはコンポーネント インスタンスへの安全なアクセスを提供するハンドルです。クラス コンポーネントでは、React は ref 属性の最初の引数を DOM 内のハンドルとして扱います。関数コンポーネントでは、React はフック API の useRef を使用して参照を取得することもできます (useRef 機能はフックでよく使用されます。つまり、コンポーネントが更新されても保存されたデータは更新されず、一定の量を書き込むことができます)

以上がReactの3大属性の1つであるRefの使い方を詳しく解説した内容です。Reactの3大属性の1つであるRefについてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご注目ください!

以下もご興味があるかもしれません:
  • React refsの詳細な紹介
  • React における ref の一般的な使用法の概要
  • React で refs を使用するチュートリアル
  • Reactコンポーネントrefsの使用に関する詳細な説明
  • React の Refs 属性をご存知ですか?

<<:  Alibaba Cloud ESC サーバー シングルノード MySQL の Docker デプロイメント

>>:  MySQL curdate() 関数の詳細な例

推薦する

画像プレビュー付きのアップロードフォームの完全な HTML

画像プレビュー機能付きのアップロードフォーム、完全なHTMLコードは次のとおりです。 <htm...

CSS 8 目を引く HOVER 効果のサンプル コード

1. エフェクトHTMLを送信する <div id="送信ボタン">...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

表のセル間の境界線/区切り線を非表示にする方法

上の境界線のみを表示する <table frame=above>下の境界線のみを表示する...

Docker で Node.js をデプロイする方法

序文プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。こ...

echartsマップカルーセルハイライトを解決するための記事

目次序文やることリストやるだけ地図を準備するインスタンスをバックアップ用に保存するタイマーカルーセル...

純粋な CSS で実装された大きなドロップダウン メニューのサンプル コード

これは純粋に CSS で実装された大きなドロップダウン メニューです。この大きなメニューは、js コ...

MySQL サービス 1067 エラーの解決策: mysql 実行可能ファイルのパスを変更する

今日、MySQLサービス1067エラー問題に遭遇しました。システムアカウントを使用するように設定して...

プロジェクトに必須の 8 つの JavaScript コード スニペット

目次1. ファイル拡張子を取得する2. コンテンツをクリップボードにコピーする3. スリープ時間は何...

HTMLポップアップ透明レイヤーインスタンスのサイズを設定でき、比例することができます

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

SQL実装 LeetCode (176. 2番目に高い給与)

[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...

Linux環境でのActiveMQ導入方法の詳しい説明

この記事では、Linux 環境での ActiveMQ の展開方法について説明します。ご参考までに、詳...

MySQL公式パフォーマンステストツールmysqlslapの使い方の紹介

目次導入説明書実際の経験まとめ導入MySQL は最も人気のあるオープンソース データベースとして、さ...

Linux に MySQL をインストールする方法 (yum とソース コードのコンパイル)

Linux に MySQL をインストールするには、yum インストールとソース コード コンパイ...

MySQL で UTF-8 エンコーディングを使用しないのはなぜですか?

MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...