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

推薦する

クラウドサーバーパゴダパネルの詳細なインストール手順

目次0x01. パゴダパネルをインストールする0x02. サーバーポートを開く0x03. ブラウザを...

MySQL 8.0.2 オフラインインストールと設定方法のグラフィックチュートリアル

MySQL_8.0.2のオフラインインストール方法は参考までに。具体的な内容は以下のとおりです。次の...

MySQL データベースの集計クエリと結合クエリ操作

目次1. クエリ結果を挿入する2. 集計クエリ2.1 はじめに2.2 集計関数2.3 group b...

Vueカスタムツリーコントロールの使い方の詳細な説明

この記事では、Vueカスタムツリーコントロールの使い方を参考までに紹介します。具体的な内容は次のとお...

Gearman + MySQL による永続化操作例

この記事では、gearman+mysql メソッドを使用して永続化操作を実装します。ご参考までに、詳...

Dockerデーモンのセキュリティ設定項目の詳細な説明

目次1. テスト環境1.1 CentOS 7をインストールする1.2 Docker CE 19.03...

JavaScriptはフォームデータの非同期送信を実装します

この記事では、フォームデータの非同期送信を実装するためのJavaScriptの具体的なコードを参考ま...

PXEを使用してLinuxシステムを自動的に展開する方法

目次背景DHCPの設定DHCP ファイル (動的ホスト構成プロトコル) の編集tftp 設定sysl...

Centos7 に Docker をインストールします (2020 の最新バージョンが利用可能、コピーして貼り付けるだけ)

操作については、こちらの公式ドキュメントを参照してください。インストール1. 古いバージョンの do...

MySQL ジョイントインデックス(複合インデックス)の実装

共同インデックスこの記事におけるジョイントインデックスの定義は次のとおりです (MySQL): AL...

動的画像読み込み技術の応用とjquery.lazyloadプラグインの使用例

アプリケーション例ウェブサイト http://www.uhuigou.net画像の動的読み込みは目新...

MySQLはテーブルデータを復元するためにfrmファイルとibdファイルを使用します

目次frm ファイルと ibd ファイルの紹介frm ファイル回復テーブル構造ibd ファイル回復テ...

時刻を保存するために適切な MySQL の datetime 型を選択する方法

データベースを構築してプログラムを書くとき、日付と時刻の使用は避けられません。データベースには、ti...

Docker ベースの nginx ファイル サーバーを構築する方法と手順

1. このマシンに新しい設定ファイルdocker_nginx.confを作成します。 サーバー{ 7...

VUE 3 テレポート コンポーネントと使用構文をすぐに使い始める

目次1. テレポートの紹介1.1. 複数のテレポートを使用する2. テレポートを使用する理由3. テ...