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ユーザー削除バグを解決する

著者が MySQL を使用してユーザーを追加していたところ、ユーザー名が間違って記述されていることに...

仮想マシンでXshell5をLinuxに接続する方法と障害の解決方法

かなり前に仮想マシンをインストールしましたが、ようやく Linux をインストールしました。マシンの...

MySQLデュアルマスター(マスターマスター)アーキテクチャ構成ソリューション

企業では、データベースの高可用性は常に最優先事項です。多くの中小企業は、MySQL マスター スレー...

フィルターを使用して画像に透明な CSS を書く方法

フィルターを使用して画像に透明な CSS を書く方法コードをコピーコードは次のとおりです。 html...

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

Vue3 でサードパーティのコンポーネントライブラリをオンデマンドでロードする方法

序文Element Plus を例に、コンポーネントとスタイルのオンデマンド読み込みを構成します。環...

MySQL データベース接続例外の概要 (収集する価値あり)

Centos にプロジェクトをデプロイするときに奇妙な問題が見つかりました。データベース接続で例外...

フロントエンド開発に必要な共通ツール機能のまとめ

1. 時刻の書式設定とその他の方法moment.jsライブラリファイルの使用をお勧めします2. テン...

簡単な計算機を実装する小さなプログラム

この記事の例では、簡単な計算機を実装するための小さなプログラムの具体的なコードを参考までに共有してい...

フロントエンドの vue+express ファイルのアップロードとダウンロードの例

新しいserver.jsを作成する糸初期化 -y 糸を追加エクスプレスノードモン -D var ex...

DockerコンテナのIPアドレスを表示する方法

私はずっとDockerにはIPアドレスがないと思っていました。実はDockerのネットワークテンプレ...

Windows10システムにMySQL 5.7.17をインストールする

オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...

@Font-face の基本的な使い方と、すべてのブラウザと互換性を持たせる方法

@Font-face 基本紹介: @font-face は、Web ページにカスタム フォントを表示...

Vue ベースの Excel 解析とエクスポートの詳細な説明

目次序文基本的な紹介コードの実装基本構造アップロード分析Excel にエクスポート基本構造Excel...