Einführung und Anwendungsbeispiele von ref und $refs in Vue

Einführung und Anwendungsbeispiele von ref und $refs in Vue

Vorwort

In JavaScript müssen Sie document.querySelector("#demo") verwenden, um den DOM-Knoten abzurufen und dann den Wert dieses Knotens abzurufen. In Vue müssen wir den DOM-Knoten nicht abrufen. Nachdem das Element an ref gebunden ist, kann es direkt über this.$refs aufgerufen werden, was den Aufwand zum Abrufen des DOM-Knotens reduzieren kann.

ref Einführung

Mit „ref“ werden Referenzinformationen für ein Element oder eine Unterkomponente registriert. Die Referenzinformationen werden im $refs-Objekt der übergeordneten Komponente registriert. Bei Verwendung auf einem normalen DOM-Element verweist die Referenz auf das DOM-Element. Bei Verwendung auf einer Unterkomponente verweist die Referenz auf die Instanz der Unterkomponente.

Einfach ausgedrückt besteht die Ref-Funktion darin, einem Element oder einer Unterkomponente eine ID-Referenz zuzuweisen und über this.$refs.refName auf die Instanz des Elements oder der Unterkomponente zuzugreifen.

<p ref="p">Hallo</p>
<Kinder ref="Kinder"></Kinder>
dies.$refs.p
dies.$refs.children

this.$refs Einführung

this.$refs ist ein Objekt, das alle DOM-Elemente und Unterkomponenteninstanzen enthält, die in der aktuellen Komponente registrierte Ref-Attribute haben

Hinweis: $refs werden erst nach dem Rendern der Komponente ausgefüllt. Sie können während des ersten Renderns nicht darauf zugreifen. Außerdem reagieren sie nicht, sodass Sie sie nicht für die Datenbindung in Vorlagen verwenden können.

Beachten:

Wenn ref mit v-for verwendet wird, ist die erhaltene Referenz ein Array, das die Loop-Array-Quelle enthält

<Vorlage>
 <div>
 <div ref="myDiv" v-for="(item, index) in arr" :key="index">{{item}}</div>
 </div>
</Vorlage>
 
<Skript>
Standard exportieren {
 Daten() {
 zurückkehren {
  arr: ['eins', 'zwei', 'drei', 'vier']
 }
 },
 montiert() {
 Konsole.log(diese.$refs.myDiv)
 },
 Methoden: {}
}
</Skript>
 
<style lang="sass" scoped>
 
</Stil> 

Instanz (Aufruf der Methode der untergeordneten Komponente über das Ref-Attribut)

【1】Unterkomponentencode:

<Vorlage>
 <div>{{msg}}</div>
</Vorlage>
 
<Skript>
Standard exportieren {
 Daten() {
 zurückkehren {
  msg: „Ich bin eine untergeordnete Komponente“
 }
 },
 Methoden: {
 Änderungsnachricht() {
  this.msg = "Transformation"
 }
 }
}
</Skript>
 
<style lang="sass" scoped></style>

【2】Code der übergeordneten Komponente:

<Vorlage>
 <div @click="übergeordneteMethode">
 <Kinder ref="Kinder"></Kinder>
 </div>
</Vorlage>
 
<Skript>
Importiere untergeordnete Elemente aus „components/children.vue“
Standard exportieren {
 Komponenten: 
 Kinder 
 },
 Daten() {
 zurückkehren {}
 },
 Methoden: {
 übergeordneteMethode() {
  this.$refs.children //Gibt ein Objekt zurück this.$refs.children.changeMsg() //Ruft die changeMsg-Methode der untergeordneten Elemente auf}
 }
}
</Skript>
 
<style lang="sass" scoped></style>

Zusammenfassen

Dies ist das Ende dieses Artikels über die Einführung und Verwendung von ref und $refs in Vue. Weitere Informationen zur Verwendung von ref und $refs in Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Eine kurze Erkundung von $refs in Vue
  • Vue löst das Problem von DOM- oder Komponentenfehlern dadurch.$refs
  • Vue-Einzeldateikomponente kann $refs-Problem nicht abrufen
  • Die übergeordnete Vue-Komponente erhält den Wert und die Methode der untergeordneten Komponente über $refs
  • Analyse der Verwendung von ref und $refs in vue.js
  • Hinweise zur Verwendung von $refs in Vue-Instanzen

<<:  Die JS-Methoden addEventListener() und attachEvent() implementieren Registrierungsereignisse

>>:  js generiert dynamisch Tabellen (Knotenoperationen)

Artikel empfehlen

JS implementiert Layoutkonvertierung in Animation

Beim Schreiben von Animationen mit JS wird häufig...

Designreferenz Schönes und originelles Blog-Design

Alle unten aufgeführten Blogs sind originell und ...

So entfernen Sie den gepunkteten Rahmen beim Klicken auf einen Link in FireFox

Ich bin heute auf mehrere Browserkompatibilitätsp...

Heute werde ich einige seltene, aber nützliche JS-Techniken teilen

1. Zurück-Button Verwenden Sie history.back(), um...

Der Unterschied zwischen Float- und Positionsattributen im CSS-Layout

CSS-Layout – Positionseigenschaft Das Positionsat...

Fünf Möglichkeiten zur Implementierung der Vererbung in js

Ausleihen von Konstruktoren Die Grundidee dieser ...

Wir treiben IE6 alleine in den Untergang

Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...

Mehrere Möglichkeiten zum Kapseln von Breadcrumb-Funktionskomponenten in Vue3

Inhaltsverzeichnis Vorwort 1. Warum brauchen wir ...

xtrabackup MySQL-Datenbank sichern und wiederherstellen

Aufgrund einiger seiner eigenen Merkmale (Sperren...