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は動的にテーブルを生成します(ノード操作)

推薦する

複数の X 軸を使用して 7 日間の天気予報を実現するための Echarts サンプル コード

目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...

スライドによるページめくり効果とクリックイベント問題をモバイル端末上で実装する

前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...

MySQL データのバックアップと復元のサンプル コード

1. データのバックアップ1. mysqldumpコマンドを使用してバックアップするmysqldum...

React の 10 個のフックの紹介

目次ReactHook とは何ですか? Reactは現在フックを提供している1. 使用状態2.use...

Vue で SuperMap を使用する練習

目次序文関連資料Vue プロジェクトが 2 次元ハイパーグラフを導入ハイパーグラフ 2D ケース引用...

Linux のリンク解除機能とファイルの削除方法

1. リンク解除機能ハード リンクの場合、unlink はディレクトリ エントリを削除し、inode...

MySQL のデッドロック チェックとデッドロック除去の例の詳細な説明

1. クエリプロセスプロセスリストを表示2. 対応するプロセスを照会し、IDを強制終了します。検証(...

elementui での el-cascader カスケードセレクタの実践

目次1. 効果2. メインコード1. 効果機能: インターフェイスから取得したデータを使用してオプシ...

Nginx 7層負荷分散のいくつかのスケジューリングアルゴリズムの簡単な理解

この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...

vue-admin-template 動的ルーティング実装例

ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...

MySql でメモリ使用量を削減する方法の詳細な説明

序文デフォルトでは、MySQL はデータベース クエリ データをキャッシュするために大きなメモリ ブ...

MySQL テーブルタイプ ストレージエンジンの選択

目次1. 現在のデータベース支出のストレージエンジンを表示する方法1:方法2: 2. ENGINE=...

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...

JavaScript が Jingdong のカルーセル効果を模倣

この記事では、JD.comのカルーセル効果の表示を実現するためのJavaScriptの具体的なコード...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...