Ref und Reaktiv ReferenzRef wird verwendet, um grundlegende Typen von reaktionsfähigen Daten zu erstellen. Die Vorlage ruft standardmäßig einen Wert auf, um Daten anzuzeigen. Änderungen in der Methode erfordern eine Änderung des Wertes von value <!-- Vorlagensyntax> <Vorlage> <div>{{Staat}}</div> </Vorlage> //js-Skript-Setup(){ lass Zustand = ref(10) Zustandswert = 11 returniere {Status} } ReaktivReaktiv wird verwendet, um reaktionsfähige Daten vom Referenztyp zu erstellen. <!-- Vorlagensyntax> <Vorlage> <div>{{bundesstaat.name}}</div> </Vorlage> //js-Skript-Setup(){ lass Zustand = reaktiv({name:'aaa'}}) Staat.Name = "Zhangsan" returniere {Status} } Der Unterschied zwischen Ref und ReactiveDie Essenz von Ref wird durch Reactive erstellt, Ref(10)=>Reactive({value:10}); Ref kann Werte in Vorlagenaufrufen direkt weglassen. Um den Wert der Variablen in der Methode zu ändern, müssen Sie den Wert von value ändern, um ihn erfolgreich zu ändern. „Reaktiv“ muss in der Vorlage vollständig ausgeschrieben werden, sonst werden die gesamten Daten angezeigt. Das Wesentliche von Reactive ist, die Zahlen jeder Ebene in Proxy-Objekte zu zerlegen. Die Reaktionsfähigkeit von Reactive ist standardmäßig rekursiv. Wenn Sie den Wert einer bestimmten Ebene ändern, wird diese rekursiv erneut aufgerufen und das DOM neu gerendert. flachRef und flachReaktivRef und Reactive erstellen rekursive Antworten und analysieren jede Ebene von JSON-Daten in ein Proxy-Objekt. ShallowRef und ShallowReactive erstellen nicht-rekursive Antwortobjekte. Die von ShallowReactive erstellten Daten rendern das DOM neu, wenn sich die erste Datenebene ändert. var Zustand = flachReaktiv({ ein:'ein', gf:{ b:'b', F:{ c:'c', s:{d:'d'} } } }) Zustand.a = "1" //Das Ändern der ersten Datenebene führt dazu, dass die Seite neu gerendert wird //Status => Proxy {a:"a",gf:{...}} //Wenn Sie die erste Ebene nicht ändern und nur andere Daten ändern, wird die Seite nicht erneut gerendert, z. B. state.gf.b = 2 Das von shallowRef erstellte responsive Objekt muss den gesamten Wert ändern, um das DOM neu darzustellen var Zustand = flachRef({ ein:'ein', gf:{ b:'b', F:{ c:'c', s:{d:'d'} } } }) Zustandswert.a = 1 /* Es kann nicht erneut gerendert werden. Das Prinzip von ShallowRef wird auch durch ShallowReactive({value:{}}) erstellt. Sie müssen den Wert ändern, um erneut zu rendern*/ Zustand.Wert = { eine:'1', gf:{ b:'2', F:{ c:'3', s:{d:'d'} } } } Wenn Sie flachRef verwenden und nur eine bestimmte Datenebene aktualisieren möchten, können Sie triggerRef verwenden. var Zustand = flachRef({ ein:'ein', gf:{ b:'b', F:{ c:'c', s:{d:'d'} } } }) Zustand.Wert.gf.fsd = 4 triggerRef(Zustand) Die Seite wird neu gerendert toRaw --- Ändern Sie nur die Daten, ohne die Seite zu rendernWenn Sie nur responsive Daten ändern möchten, ohne ein Seiten-Rendering auszulösen, können Sie die Methode toRaw verwenden. var obj = {name:'test'} var Status = reaktiv(Objekt) var obj2 = toRaw(Status) obj2.name = 'zs' // bewirkt nicht, dass die Seite gerendert wird---- //Wenn es mit ref erstellt wird, dann holen Sie sich den Wert var obj = {name:'test'} var Status = ref(Objekt) var obj2 = toRaw(Zustand.Wert) markRaw --- Keine Daten verfolgenWenn Sie nicht möchten, dass die Daten verfolgt werden, können Sie diese Methode aufrufen, um sie responsiv zu machen. Dann können Sie die geänderten Daten nicht verfolgen und die Seite erneut rendern. var obj = {name:'test'} obj = markRaw(obj) var Status = reaktiv(Objekt) state.name = 'zs' // Datenseite kann nicht geändert werden und wird nicht geändert toRef --- Mit der Datenquelle verknüpfen, ohne die Benutzeroberfläche zu ändernWenn Sie ref verwenden, um eine responsive Variable zu erstellen, wird sie nicht mit den Quelldaten verknüpft. Wenn Sie sie mit den Quelldaten verknüpfen, die Benutzeroberfläche aber nicht aktualisieren möchten, wenn sich die Daten ändern, müssen Sie toRef verwenden, um sie zu erstellen. var obj = {name:'test'} var Status = ref(Objektname) state.name = 'zs' //Zu diesem Zeitpunkt ändert sich der Name-Attributwert von obj nicht und die Benutzeroberfläche wird automatisch aktualisiert/// var obj = {name:'test'} var state = toRef(obj,'name') //Es kann nur ein Attributwert festgelegt werden state.name = 'zs' //Der Name-Attributwert in obj ändert sich, aber die Benutzeroberfläche wird nicht aktualisiert toRefs --- Mehrere toRef-Eigenschaftswerte festlegenWenn Sie mehrere toRef-Eigenschaftswerte festlegen möchten, können Sie toRefs verwenden. var obj = {name:'test',age:16} var Status = toRefs(Objekt) state.name.value = 'zs' //Der Eigenschaftswert des Objektnamens ändert sich ebenfalls, aber die Benutzeroberfläche wird nicht aktualisiert state.age.value = 18 //Der Eigenschaftswert des Objektalters ändert sich ebenfalls, aber die Benutzeroberfläche wird nicht aktualisiert customRef --- Einen Verweis anpassenSie können eine responsive Ref-Methode über die Methode customRef anpassen. Funktion myRef(Wert){ /* Die Funktion customRef gibt ein Objekt mit zwei Methoden zurück: get/set. Auf die Methode get kann zugegriffen werden, wenn das erstellte Objekt Daten abruft, und die Methode set wird ausgelöst, wenn das erstellte Objekt den Wert ändert. Die Funktion customRef hat zwei Parameter: track/trigger. Der Parameter track bedeutet „Verfolgung“. Er wird in der Methode get aufgerufen, um Datenänderungen jederzeit zu verfolgen. Der Trigger-Parameter wird verwendet, um die Antwort auszulösen. Die Set-Methode kann aufgerufen werden, um die UI-Schnittstelle zu aktualisieren*/ returniere customRef((Spur,Trigger)=>{ zurückkehren { erhalten(){ track()//Rückgabewert der Tracking-Daten }, setze(neuerWert){ Wert = neuerWert trigger()//UI-Schnittstelle aktualisieren} } }) } aufstellen(){ var Alter = myRef(18) Alter.Wert = 20 } ref Das Label der gebündelten SeiteVue2.0 kann DOM-Elemente über this.refs abrufen, aber Vue3 bricht diesen Vorgang ab. Ohne refs können Sie die Methode ref() direkt verwenden, um reaktionsfähige Variablen zu generieren und sie an DOM-Elemente zu binden. <Vorlage> <div ref="box"></div> </Vorlage> importiere {ref,onMounted} von 'vue' /* Die Setup-Methode wird zwischen beforeCreate und created im Lebenszyklus aufgerufen*/ <Skript> aufstellen(){ var box = ref(null) beim Montieren(()=>{ Konsole.log('onMounted',Box.Wert) }) Konsole.log(Box.Wert) Rückgabe {box} } </Skript> ZusammenfassenDies ist das Ende dieses Artikels über den Unterschied zwischen Ref und Reactive in Vue3.0. Weitere Informationen zum Unterschied zwischen Ref und Reactive in Vue3.0 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:
|
<<: Detaillierte Erläuterung der gespeicherten Prozeduren und Funktionen von MySQL
>>: Detailliertes Tutorial zur Installation von phpMyAdmin unter Ubuntu 18.04
Schnellstart 1. Suchen Sie das Nginx-Image auf Do...
Inhaltsverzeichnis 1 Konfigurations- und Datenver...
Vorwort Manchmal habe ich das Gefühl, dass die na...
Der erzielte EffektImplementierungscode html <...
<meta name="viewport" content="...
In diesem Artikel wird der spezifische Code von V...
Problem <br />Bei responsivem Layout sollte...
Inhaltsverzeichnis MySQL-Berechtigungskontrolle B...
Ein großer Teil der Datenverwaltung besteht aus S...
CSS-Stilspezifikationen 1. Klassenauswahl 2. Tag-...
1. Verwenden Sie das Image mysql/mysql-server:lat...
Um den Märtyrern und Opfern des Kampfes gegen die...
INSERT INTO hk_test(Benutzername, Passwort) VALUE...
ausstellen Design Passwortstärke-Analyse Das Pass...
1. Übergeordnetes Div definiert Pseudoklassen: af...