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() 関数の詳細な例

推薦する

ハイパーリンクAタグを学ぶ

聞く: CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこ...

CentOS7 で docker を使用して Apollo 構成センターをデプロイする実装

Apollo オープンソース アドレス: https://github.com/ctripcorp/...

nginx で同時接続リクエストの数を制限する方法

導入同時接続数を制限するモジュールは http_limit_conn_module です。アドレス:...

パフォーマンス負荷診断にMySQLシステムデータベースを使用する方法

ある達人がかつて、自分の妻のことを知るのと同じくらい、自分が管理するデータベースのことを知るべきだと...

VUEはFlappy Birdゲームのサンプルコードを実装します

Flappy Bird は、誰もがアプリでプレイしたことがある非常にシンプルな小さなゲームです。ここ...

JavaScript ではおそらく switch 文を使う必要はない

目次スイッチも複雑なコードブロックもありませんPythonからのインスピレーション辞書を使用してスイ...

テキストエリアのテキスト入力領域に改行を実装する方法

textarea 入力領域でテキストを折り返す場合は、<br/> と入力すると <...

HTML で余分なテキストを省略記号に変換する方法

HTML で余分なテキストを省略記号として表示したい場合は、いくつかの方法があります。 1行テキスト...

HTML サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。定義と使用法: <...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

MySQLでテーブルを接続するいくつかの方法

MySQL テーブルでの接続方法は実は非常に簡単なので、ここではその特徴を簡単にリストします。テーブ...

MySQLdump コマンドを使用した MySQL データの移行

このソリューションの利点はシンプルさと使いやすさですが、欠点はダウンタイムが長くなることです。 した...

JavaScriptでページスクロールアニメーションを実装する

目次レイアウトを作成するCSSスタイルを追加するJavaScript で要素を操作する対象要素を取得...