Vue における ref と $refs の紹介と使用例

Vue における ref と $refs の紹介と使用例

序文

JavaScript では、document.querySelector("#demo") を使用して DOM ノードを取得し、このノードの値を取得する必要があります。 Vue では、DOM ノードを取得する必要はありません。要素が ref にバインドされた後、this.$refs を介して直接呼び出すことができるため、DOM ノードの取得にかかる消費を削減できます。

ref はじめに

ref は、要素またはサブコンポーネントの参照情報を登録するために使用されます。参照情報は親コンポーネントの $refs オブジェクトに登録されます。通常の DOM 要素で使用する場合、参照は DOM 要素を指します。サブコンポーネントで使用する場合、参照はサブコンポーネント インスタンスを指します。

簡単に言えば、ref 機能は要素またはサブコンポーネントに ID 参照を割り当て、this.$refs.refName を通じて要素またはサブコンポーネントのインスタンスにアクセスすることです。

<p ref="p">こんにちは</p>
<children ref="children"></children>
これ.$refs.p
this.$refs.children

this.$refs はじめに

this.$refsは、現在のコンポーネントに登録されたref属性を持つすべてのDOM要素とサブコンポーネントインスタンスを保持するオブジェクトです。

注: $refs はコンポーネントがレンダリングされた後にのみ設定され、最初のレンダリング中はアクセスできず、応答性もないため、テンプレートでのデータバインディングに使用することはできません。

知らせ:

refをv-forで使用すると、取得される参照はループ配列ソースを含む配列になります。

<テンプレート>
 <div>
 <div ref="myDiv" v-for="(item, index) in arr" :key="index">{{item}}</div>
 </div>
</テンプレート>
 
<スクリプト>
エクスポートデフォルト{
 データ() {
 戻る {
  arr: ['1'、'2'、'3'、'4']
 }
 },
 マウント() {
 コンソールログ(this.$refs.myDiv)
 },
 メソッド: {}
}
</スクリプト>
 
<style lang="sass" スコープ>
 
</スタイル> 

インスタンス(ref属性を介して子コンポーネントのメソッドを呼び出す)

【1】サブコンポーネントコード:

<テンプレート>
 <div>{{メッセージ}}</div>
</テンプレート>
 
<スクリプト>
エクスポートデフォルト{
 データ() {
 戻る {
  メッセージ: '私は子コンポーネントです'
 }
 },
 メソッド: {
 変更メッセージ() {
  this.msg = '変換'
 }
 }
}
</スクリプト>
 
<style lang="sass" スコープ付き></style>

【2】親コンポーネントコード:

<テンプレート>
 <div @click="親メソッド">
 <children ref="children"></children>
 </div>
</テンプレート>
 
<スクリプト>
'components/children.vue' から children をインポートします。
エクスポートデフォルト{
 コンポーネント: 
 子供たち 
 },
 データ() {
 戻る {}
 },
 メソッド: {
 親メソッド() {
  this.$refs.children // オブジェクトを返す this.$refs.children.changeMsg() // 子の changeMsg メソッドを呼び出す}
 }
}
</スクリプト>
 
<style lang="sass" スコープ付き></style>

要約する

Vue における ref と $refs の導入と使用に関するこの記事はこれで終わりです。Vue における ref と $refs の使用についてさらに詳しく知りたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue の $refs の簡単な説明
  • Vueはこれを通じてDOMまたはコンポーネントエラーの問題を解決します。$refs
  • Vue 単一ファイル コンポーネントが $refs を取得できない問題
  • Vue親コンポーネントは$refsを通じて子コンポーネントの値とメソッドを取得します。
  • vue.js における ref と $refs の使用法の分析
  • Vueインスタンスで$refsを使用する際の注意点

<<:  JS addEventListener() およびattachEvent() メソッドは登録イベントを実装します

>>:  jsは動的にテーブルを生成します(ノード操作)

推薦する

MySQL ステートメントの実行順序と書き込み順序の例の分析

選択ステートメントの完全な構文は次のとおりです。 選択 DISTINCT <選択リスト>...

MYSQLパターンマッチングREGEXPの使用に関する一般的な話など

のようにLIKE ではデータ全体が一致する必要がありますが、REGEXP では部分的な一致のみが必要...

ウェブページのフラッシュアニメーションが表示されない問題の解決策

<br />解決手順は次のとおりです。スタート -> 実行 -> reged...

MySQL のインデックスとデータ テーブルを管理する方法

目次テーブルの競合を見つけて修正するインデックス統計の更新テーブルの競合を見つけて修正するデータ テ...

HTML と埋め込み Flash の両方におけるスクロールバーの分析と処理

開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...

Linux カーネル デバイス ドライバーのメモリ管理に関する注意事項

/************************ * Linux メモリ管理 *********...

よくあるNginxの設定ミスの例

目次ルートの場所が見つかりませんオフバイスラッシュ安全でない変数の使用スクリプト名$uri を使用す...

CocosCreatorメッセージ配信メカニズムの詳細な説明

概要この記事は、ゲームビジネスアーキテクチャに関連するコンテンツの紹介から始まります。ゲームビジネス...

JS 手ぶれ補正機能の実装と使用シナリオ

目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...

mysql 5.7.18 winx64 無料インストール設定方法

1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...

HTTP ステータス コード

このステータス コードは、リクエストのステータスに関する情報を提供し、サイトとリクエストされたページ...

MySQL 5.7 データベースのインストール手順の個人的な要約

1.mysql-5.7.19-winx64.zip(これは無料のインストールバージョンで、約318 ...

MySQL インデックスの長さ制限の原理の分析

この記事は主に、MySQL インデックスの長さ制限の原理の分析を紹介します。サンプル コードを通じて...

WeChatアプレットにおけるデータ保存実装方法

目次グローバル変数 globalDataページプライベート変数データストレージ非同期ストレージ(デバ...

JavaScript parseInt() と Number() の違いのケーススタディ

学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...