Ein kurzer Vortrag über berechnete Eigenschaften und das Abhören von Eigenschaften in Vue

Ein kurzer Vortrag über berechnete Eigenschaften und das Abhören von Eigenschaften in Vue

1. Berechnete Eigenschaften

Definition

  • Berechnete Eigenschaften: Die zu verwendende Eigenschaft existiert nicht und muss aus vorhandenen Eigenschaften berechnet werden. Berechnete Eigenschaften erfordern die Berechnung eines neuen Konfigurationselements.
  • Für Vue sind die Daten in Daten das Attribut. Sobald sich die Daten in Vue ändern, wird die Vorlage erneut analysiert und die Methode in der Interpolationssyntax erneut aufgerufen.

Prinzip

  • Die darunterliegende Schicht verwendet die von der Methode Object.defineproperty bereitgestellten Getter und Setter.

Wann wird die Get-Funktion ausgeführt?

  • Dies wird einmal beim ersten Lesen ausgeführt.
  • Es wird erneut aufgerufen, wenn sich die abhängigen Daten ändern.

Vorteile

  • Im Vergleich zur Methodenimplementierung verfügt es über einen internen Caching-Mechanismus (Wiederverwendung), der effizienter und einfacher zu debuggen ist.

Bemerkung

  • Die berechneten Eigenschaften werden schließlich auf der VM (Vue-Instanz) angezeigt und können direkt gelesen und verwendet werden.
  • Wenn eine berechnete Eigenschaft geändert werden soll, muss eine Set-Funktion geschrieben werden, die auf die Änderung reagiert, und die Daten, von denen die Berechnung abhängt, müssen sich im Set ändern.

Syntax: 1. Kurzform:

 berechnet: {
     "Berechneter Eigenschaftsname" () {
         "Wert" zurückgeben
     }
 }

Anforderung: Finden Sie die Summe von 2 Zahlen und zeigen Sie sie auf der Seite an

<Vorlage>
  <div>
    <p>{{ Zahl }}</p>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Daten(){
    zurückkehren {
      eine: 10,
      b: 20
    }
  },
  // Berechnete Eigenschaften:
  // Szenario: Der Wert einer Variablen muss mithilfe einer anderen Variablen berechnet werden/*
    Grammatik:
    berechnet: {
      BerechneterEigenschaftsname() {
        Rückgabewert}
    }
  */
 // Hinweis: Sowohl berechnete als auch Datenattribute sind Variablen – sie können nicht denselben Namen haben // Hinweis 2: Wenn sich eine Variable innerhalb einer Funktion ändert, wird das Ergebnis automatisch neu berechnet und berechnet zurückgegeben: {
    Zahl(){
      gib dies.a + dies.b zurück
    }
  }
}
</Skript>

<Stil>

</Stil>

Grammatik: 2. Vollständiges Schreiben:

Berechnete Eigenschaften werden im Format von Konfigurationsobjekten geschrieben: Get- und Set-Funktionen werden in Objekten verwendet

Die Rolle von get: Wenn jemand fullName liest, wird get aufgerufen und der Rückgabewert wird als Wert der berechneten Eigenschaft verwendet (get muss return schreiben)

Wann wird angerufen? 1. Wenn fullName zum ersten Mal gelesen wird. 2. Wenn sich die Daten ändern, von denen sie abhängen.

 erhalten(){
                console.log('get wurde aufgerufen')
                // console.log(dies) // das hier ist vm (Vue-Instanz)
                returniere diesen.Vorname + '-' + diesen.Nachname
            },
            

set: Wenn der Wert einer berechneten Eigenschaft geändert wird, erhält der aufgerufene Parameter den neuen übergebenen Wert.

  ...
  berechnet:{
      vollständiger Name:
          //Was ist die Funktion von get? Wenn jemand fullName liest, wird get aufgerufen und der Rückgabewert als Wert von fullName verwendet. //Wann wird get aufgerufen? 1. Wenn fullName zum ersten Mal gelesen wird. 2. Wenn sich die Daten ändern, von denen sie abhängen.
          erhalten(){
              console.log('get wurde aufgerufen')
              // console.log(dies) //Dies ist vm
              returniere diesen.Vorname + '-' + diesen.Nachname
          },
          //Wann wird set aufgerufen? Wenn fullName geändert wird.
          setze(Wert){
              console.log('festlegen',Wert)
              const arr = Wert.split('-')
              dieser.Vorname = arr[0]
              dieser.Nachname = arr[1]
          }
      }
  }
})    

2. Überwachungs- (Abhör-) Eigenschaften

<!-- Beim Binden eines Ereignisses: @xxx="yyy" yyy kann einige einfache Anweisungen schreiben -->
<button @click="isHot = !isHot">Wetter wechseln</button>

1. Überwachungsattributüberwachung:

Wenn sich das überwachte Attribut ändert, wird die Handler-Rückruffunktion automatisch aufgerufen, um zugehörige Vorgänge auszuführen

Das überwachte Attribut muss vorhanden sein, bevor es überwacht werden kann! !

      ...
      //Methode 1 schreiben. Übergeben Sie die Watch-Konfiguration, um auf das iHot-Attribut watch:{ zu hören.
          istHeiß:{
              immediate:true, //Lassen Sie den Handler während der Initialisierung aufrufen. //Wann wird der Handler aufgerufen? Wenn sich isHot ändert.
              
              handler(neuerWert,alterWert){
                  console.log('isHot wurde geändert', neuerWert, alterWert)
              }
          }
      }
  })
  
  
  // Methode 2. Überwachung über vm.$watch('isHot',{
   immediate:true, //Lassen Sie den Handler während der Initialisierung aufrufen, der Standardwert ist false
   //Wann wird der Handler aufgerufen? Wenn sich isHot ändert.
   handler(newValue,oldValue){ // Es gibt zwei Parameter, einer ist der neue Wert und der andere ist der alte Wert console.log('isHot wurde geändert',newValue,oldValue)
   }
})

2. Umfassende Überwachung

Umfassende Überwachung:

  • 1) Standardmäßig überwacht die Uhr in Vue keine Änderungen der internen Werte des Objekts (eine Ebene).
  • 2) Durch die Konfiguration von deep:true können Änderungen an internen Werten von Objekten überwacht werden (mehrschichtig).

Bemerkung:

  • 1) Vue selbst kann Änderungen der internen Werte von Objekten überwachen, die von Vue bereitgestellte Überwachung kann dies jedoch standardmäßig nicht!
  • 2) Entscheiden Sie bei der Verwendung von Watch basierend auf der spezifischen Struktur der Daten, ob eine gründliche Überwachung verwendet werden soll.
Daten:{
	istHeiß:wahr,
	Zahlen:
		eine:1,
		b:1
	}
},
betrachten:{
	// Überwachen Sie die Änderung eines bestimmten Attributs in einer mehrstufigen Struktur (beim ursprünglichen Schreibvorgang müssen Anführungszeichen hinzugefügt werden, und die Abkürzung kann weggelassen werden, in diesem Fall muss sie jedoch hinzugefügt werden, da sonst ein Fehler gemeldet wird).
	/* 'zahlen.a': {
		handler(){
			console.log('a wurde geändert')
		}
	} */
	//Überwachen Sie die Änderungen aller Attribute in der mehrstufigen Strukturnummern:{
		deep:true, // Wenn dies nicht aktiviert ist, dann wird überwacht, ob sich die Adresse der Nummer geändert hat handler(){
			console.log('Zahlen geändert')
		}
	}
}

Überwachungseigenschaften - Kurzform

Dies kann abgekürzt werden, wenn in den Überwachungseigenschaften nur handler() vorhanden ist und keine anderen Konfigurationselemente aktiviert werden müssen.

betrachten:{
	istHeiß(neuerWert,alterWert){
		console.log('isHot wurde geändert',neuerWert,alterWert,dieser)
	}
}

/* vm.$watch('isHot',function (neuerWert,alterWert) {
	console.log('isHot wurde geändert',neuerWert,alterWert,dieser)
}) */

3. Unterschiede und Grundsätze

Unterschied zwischen berechneter und beobachteter

  • Die Uhr kann alle Funktionen ausführen, die ein Computer ausführen kann.
  • Die Funktionen, die watch ausführen kann, können möglicherweise nicht von computed ausgeführt werden. watch kann beispielsweise asynchrone Vorgänge ausführen.

Zwei wichtige Prinzipien

  • Alle von Vue verwalteten Funktionen werden am besten als normale Funktionen geschrieben, sodass diese auf ein VM- oder Komponenteninstanzobjekt verweisen.
  • Alle Funktionen, die nicht von Vue verwaltet werden (Timer-Rückruffunktionen, Ajax-Rückruffunktionen, Promise-Rückruffunktionen usw.), werden am besten als Pfeilfunktionen geschrieben, sodass diese auf das VM- oder Komponenteninstanzobjekt verweisen.
betrachten:{
	Vorname(Wert){
		setzeTimeout(()=>{
			console.log(this) //vue-Instanzobjekt, wenn eine normale Funktion verwendet wird, gibt es Window zurück
			dieser.vollständigerName = Wert + '-' + dieser.nachsterName
		},1000);
	},
	Nachname(Wert){
		dieser.vollständigerName = dieser.vorname + '-' + val
	}
}

Zusammenfassen

Dies ist das Ende dieses Artikels über berechnete Eigenschaften und Eigenschaftsabhören in Vue. Weitere relevante Inhalte zu berechneten Eigenschaften und Eigenschaftsabhören in Vue finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Transkript der Implementierung berechneter Vue-Eigenschaften
  • Von Vue berechnete Eigenschaften
  • Einführung in berechnete Eigenschaften in Vue
  • Vue verwendet berechnete Eigenschaften, um die Erstellung dynamischer Schieberegler abzuschließen
  • Vue-Überwachungseigenschaften und berechnete Eigenschaften
  • Berechnete Eigenschaften und Datenerfassungsmethoden in Vue
  • Kennen Sie die berechneten Eigenschaften von Vue?
  • Drei Implementierungsmethoden für den berechneten Eigenschaftsnamenfall von Vue

<<:  So implementieren Sie eine Maskenebene in HTML So verwenden Sie eine Maskenebene in HTML

>>:  So implementieren Sie Docker, um Parameter dynamisch an Springboot-Projekte zu übergeben

Artikel empfehlen

Webdesign-Tutorial (5): Visuelles Webdesign

<br />Vorheriger Artikel: Webdesign-Tutorial...

So wechseln Sie in Linux effizient zwischen Verzeichnissen

Wenn es um den Verzeichniswechsel unter Linux geh...

Detaillierte Erläuterung der Deep Copy und Shallow Copy im JS-Variablenspeicher

Inhaltsverzeichnis Variabler Typ und Speicherplat...

XHTML-Tutorial: XHTML-Grundlagen für Anfänger

<br />Der Inhalt dieser Site ist Original. B...

So starten Sie ein Java-Programm im Docker

Erstellen Sie ein einfaches Spring Boot-Webprojek...

CSS3-Implementierungscode für einfaches Karussellbildschneiden

Umsetzungsideen Erstellen Sie zunächst einen über...

Antworten auf mehrere häufig gestellte MySQL-Interviewfragen

Vorwort: Bei Vorstellungsgesprächen für verschied...

So deinstallieren Sie MySQL 5.7.19 unter Linux

1. Finden Sie heraus, ob MySQL zuvor installiert ...

Vollständiges HTML des Upload-Formulars mit Bildvorschau

Das Upload-Formular mit Bildvorschaufunktion, der...

Detaillierte Erklärung des virtuellen DOM und des Diff-Algorithmus in React

Die Rolle des virtuellen DOM Zunächst müssen wir ...

Ausführliche Erklärung zur Docker-Maschine

Unterschiede zwischen Docker und Docker Machine D...