Eine der Kernkomponenten eines modernen Front-End-Frameworks ist ein reaktionsschnelles System. Es sind magische Zauberstäbe, die es Anwendungen ermöglichen, eine hohe Interaktivität, Dynamik und Reaktionsfähigkeit zu erreichen. Zu verstehen, was ein reaktionsschnelles System ist und wie es in der Praxis anwendet, ist für jeden Webentwickler eine entscheidende Fähigkeit.
reaktionsschnelle Systeme sind Mechanismen, die die Datenquelle (Modell) und die Datenrepräsentationsschicht (View) in der Synchronisation automatisch aufbewahren. Immer wenn sich das Modell ändert, wird die Ansicht erneut gerendert, um diese Änderungen widerzuspiegeln. Nehmen wir als Beispiel einen einfachen Markdown -Editor. Es verfügt normalerweise über zwei Panes: einen zum Schreiben von Markdown -Code (Änderung des zugrunde liegenden Modells) und das andere zur Vorschau von kompilierten HTML (Anzeigen aktualisierter Ansichten). Wenn Sie Inhalte in den Schreibbereich schreiben, wird er sofort und automatisch im Vorschau -Bereich in der Vorschau eingerichtet. Dies ist natürlich nur ein einfaches Beispiel. Oft ist die Situation viel komplizierter.
In vielen Fällen hängen die Daten, die wir anzeigen möchten, von einigen anderen Daten ab. In diesem Fall werden die Abhängigkeiten verfolgt und die Daten entsprechend aktualisiert. Nehmen wir beispielsweise an, wir haben eine Fullname -Eigenschaft, die von den Eigenschaften von FirstName und Lastname abhängt. Wenn Abhängigkeiten geändert werden, wird die Vollname -Eigenschaft automatisch neu berechnet und die Ergebnisse in der Ansicht angezeigt.
Jetzt, da wir festgestellt haben, was Reaktionsfähigkeit ist, ist es an der Zeit zu erfahren, wie der neue Vue 3 -Reaktionsmechanismus funktioniert und wie er in der Praxis verwendet werden kann. Aber bevor wir dies tun, werfen wir einen kurzen Blick auf den alten Vue 2 Responsive -Mechanismus und seine Mängel.
Schlüsselpunkte
reactive
für Grundtypen und ref
für Objekte gilt. readonly
ref
Erweiterte reaktionsschnelle API -Methoden wie reactive
und computed
Vue 3 löst die Einschränkungen in Vue 2 Responsive Systems auf, z. B. die Erkennung von Änderungen an der Arraylänge und den hinzugefügten Objekteigenschaften. watch
Hinter den Kulissen verwendet VUE 2 ES5 -Objekt.DefineProperty (), um alle Eigenschaften des Datenobjekts in Getter und setzter umzuwandeln. Für jede Komponenteninstanz erstellt VUE eine Abhängigkeitsbeobachterinstanz. Alle als Abhängigkeiten während des Rendern des Komponenten gesammelten Attribute werden vom Beobachter aufgezeichnet. Später, wenn der Setter der Abhängigkeit abgefeuert wird, wird der Beobachter mitgeteilt, dass die Komponenten die Ansicht neu renoviert und aktualisiert. So funktioniert alle Magie. Leider gibt es einige Dinge, die Sie sich bewusst sind.
vue kann bestimmte Datenänderungen aufgrund von Object.DefineProperty () Einschränkungen nicht erkennen. Dazu gehören:
Zum Glück bietet uns Vue die Vue.set -API -Methode, die dem reaktionsschnellen Objekt eine Eigenschaft hinzufügt, um sicherzustellen, dass die neue Eigenschaft ebenfalls reaktionsschnell ist und die Aktualisierungen der Ansicht auslöst.
Erforschen wir die obige Situation im folgenden Beispiel:
<div id="app"> <h1>Hello! My name is {{ person.name }}. I'm {{ person.age }} years old.</h1> <button @click="addAgeProperty">Add "age" property</button> <p>Here are my favorite activities:</p> <ul> <li v-for="(item, index) in activities" :key="index">{{ item }} <button @click="editActivity(index)">Edit</button></li> </ul> <button @click="clearActivities">Clear the activities list</button> </div>
const App = new Vue({ el: '#app', data: { person: { name: "David" }, activities: [ "Reading books", "Listening music", "Watching TV" ] }, methods: { // 1. Add a new property to an object addAgeProperty() { this.person.age = 30 }, // 2. Setting an array item by index editActivity(index) { const newValue = prompt('Input a new value') if (newValue) { this.activities[index] = newValue } }, // 3. Modifying the length of the array clearActivities() { this.activities.length = 0 } } });
Im obigen Beispiel können wir sehen, dass keine dieser drei Methoden funktioniert. Wir können dem Personobjekt keine neuen Eigenschaften hinzufügen. Wir können keine Indizes verwenden, um Elemente im Aktivitäten -Array zu bearbeiten. Wir können auch nicht die Länge des Aktivitäten -Arrays ändern.
Natürlich gibt es Lösungen für diese Situationen, die wir im nächsten Beispiel untersuchen werden:
const App = new Vue({ el: '#app', data: { person: { name: "David" }, activities: [ "Reading books", "Listening music", "Watching TV" ] }, methods: { // 1. Adding a new property to the object addAgeProperty() { Vue.set(this.person, 'age', 30) }, // 2. Setting an array item by index editActivity(index) { const newValue = prompt('Input a new value') if (newValue) { Vue.set(this.activities, index, newValue) } }, // 3. Modifying the length of the array clearActivities() { this.activities.splice(0) } } });
In diesem Beispiel verwenden wir die Vue.set -API -Methode, um dem Personobjekt eine New -Age -Eigenschaft hinzuzufügen und ein bestimmtes Element aus dem Aktivitäten -Array auszuwählen/zu ändern. Im letzten Fall verwenden wir nur die in JavaScript eingebaute Splice () Array -Methode.
Wie wir sehen, funktioniert dies, aber es ist ein bisschen ungeschickt und führt zu inkonsistenten Codebasen. Glücklicherweise wurde dieses Problem in Vue 3 gelöst. Mal sehen, wie magisch es im folgenden Beispiel ist:
const App = { data() { return { person: { name: "David" }, activities: [ "Reading books", "Listening music", "Watching TV" ] } }, methods: { // 1. Adding a new property to the object addAgeProperty() { this.person.age = 30 }, // 2. Setting an array item by index editActivity(index) { const newValue = prompt('Input a new value') if (newValue) { this.activities[index] = newValue } }, // 3. Modifying the length of the array clearActivities() { this.activities.length = 0 } } } Vue.createApp(App).mount('#app')
In diesem Beispiel unter Verwendung von Vue 3 kehren wir zu der im ersten Beispiel verwendeten JavaScript-Funktionalität zurück, und jetzt funktionieren alle Methoden ordnungsgemäß.
In Vue 2.6 wurde die API -Methode vue.observable () eingeführt. Es enthüllt ein reaktionsschnelles System in gewissem Maße, sodass Entwickler die Objekte explizit reagieren können. Tatsächlich ist dies die gleiche genaue Methode, die VUE verwendet, um Datenobjekte intern zu wickeln, und ist nützlich, um einen minimalen Cross-Component-Statusspeicher für einfache Szenarien zu erstellen. Obwohl es nützlich ist, stimmt dieser einzelne Ansatz nicht mit den Funktionen und Flexibilität der vollständigen, featurereichen reaktionsschnellen API überein, die mit Vue 3 geliefert wird. Wir werden den Grund im nächsten Abschnitt sehen.
Hinweis: Da Object.defineProperty () nur eine ES5 -Funktion ist und nicht simuliert werden kann, unterstützt VUE 2 IE8 und unten nicht.
<script> import { ref, reactive, readonly, markRaw, isRef, isReactive, isReadonly, isProxy, onMounted } from 'vue'; export default { setup() { const counter = ref(0) const person = reactive({ name: 'David', age: 36 }) const math = readonly({ PI: 3.14 }) const alphabetNumbers = markRaw({ A: 1, B: 2, C: 3 }) const showValue = () => { alert(`The value of B is ${alphabetNumbers.B}`) } onMounted(() => { console.log(isRef(counter)) // true console.log(isReactive(person)) // true console.log(isReadonly(math)) // true console.log(isProxy(alphabetNumbers)) // false }) return { counter, person, math, alphabetNumbers, showValue } } }; </script>Das Responsive System in Vue 3 wurde vollständig umgeschrieben, um den ES6 -Proxy zu nutzen und die API zu reflektieren. Die neue Version enthüllt eine featurereichen reaktionsschnelle API, die das System flexibler und leistungsfähiger macht als zuvor.
MitProxy-API können Entwickler Objektvorgänge mit niedrigem Niveau an Zielobjekten abfangen und ändern. Ein Proxy ist ein Klon/ein Wrapper eines Objekts (als Ziel bezeichnet) und bietet spezielle Funktionen (als fallen bezeichnet), die auf bestimmte Operationen reagieren und das integrierte Verhalten von JavaScript überschreiben Objekte. Wenn Sie weiterhin das Standardverhalten verwenden müssen, können Sie die entsprechende Reflexions -API verwenden, die, wie der Name schon sagt, die Methoden der Proxy -API widerspiegelt. Erforschen wir ein Beispiel, um zu sehen, wie diese APIs in Vue 3 verwendet werden:
<div id="app"> <h1>Hello! My name is {{ person.name }}. I'm {{ person.age }} years old.</h1> <button @click="addAgeProperty">Add "age" property</button> <p>Here are my favorite activities:</p> <ul> <li v-for="(item, index) in activities" :key="index">{{ item }} <button @click="editActivity(index)">Edit</button></li> </ul> <button @click="clearActivities">Clear the activities list</button> </div>
Um einen neuen Proxy zu erstellen, verwenden wir den neuen Proxy -Konstruktor (Target, Handler). Es akzeptiert zwei Parameter: das Zielobjekt (Personobjekt) und das Handler -Objekt, das definiert, welche Operationen (Get and Set -Operationen) abgefangen werden. Im Handler -Objekt verwenden wir die GET & Setzen Sie die Fallen, um zu verfolgen, wann Eigenschaften gelesen werden und wenn Eigenschaften geändert/hinzugefügt werden. Wir richten Konsolenanweisungen ein, um sicherzustellen, dass die Methode ordnungsgemäß funktioniert.
Get and Set -Fallen nehmen die folgenden Parameter:
reflektiert die API -Methode akzeptiert dieselben Parameter wie die entsprechende Proxy -Methode. Sie werden verwendet, um das Standardverhalten für eine bestimmte Operation zu implementieren, Attributname für eine Get -Trap zurückzugeben und true zurückzugeben, wenn eine Eigenschaft festgelegt ist, ansonsten false zurückgeben.
Die Funktionenkommentierte Track () und Trigger () sind vue-spezifisch und werden verwendet, um zu verfolgen, wenn Eigenschaften gelesen werden und wenn Eigenschaften geändert/hinzugefügt werden. Infolgedessen wird Vue den Code mit dieser Eigenschaft umgeleitet.
Im letzten Teil des Beispiels verwenden wir Konsolenanweisungen, um das ursprüngliche Personenobjekt auszugeben. Wir verwenden dann eine andere Anweisung, um den Attributnamen des Proxy -Objekts zu lesen. Als nächstes ändern wir die Alterseigentum und erstellen eine neue Hobby -Immobilie. Schließlich geben wir das Personobjekt erneut aus, um festzustellen, ob es korrekt aktualisiert wurde.
Dies ist eine kurze Beschreibung des Vue 3 -Reaktionsmechanismus. Natürlich ist die tatsächliche Implementierung viel komplexer, aber hoffentlich reichen die oben angegebenen Beispiele aus, um Ihnen die Hauptidee zu machen.
Bei der Verwendung von Vue 3 -Reaktionsmechanismus müssen die folgenden Punkte berücksichtigt werden:
Schließlich gehen wir zum Vue 3 Responsive API selbst. In den folgenden Abschnitten untersuchen wir den API -Ansatz, der logisch gruppiert ist. Ich habe die Methoden gruppiert, weil ich denke, dass es einfacher ist, auf diese Weise zu präsentieren. Beginnen wir mit den Grundlagen.
Die erste Gruppe enthält die grundlegendsten Methoden zur Steuerung der Datenreaktionsfähigkeit:
Lassen Sie uns nun die praktische Anwendung dieser Methoden sehen:
<div id="app"> <h1>Hello! My name is {{ person.name }}. I'm {{ person.age }} years old.</h1> <button @click="addAgeProperty">Add "age" property</button> <p>Here are my favorite activities:</p> <ul> <li v-for="(item, index) in activities" :key="index">{{ item }} <button @click="editActivity(index)">Edit</button></li> </ul> <button @click="clearActivities">Clear the activities list</button> </div>
In diesem Beispiel untersuchen wir die Verwendung von vier grundlegenden Reaktionsmethoden.
Erstens erstellen wir einen Zähler -Ref -Objekt mit einem Wert von 0. In der Ansicht platzieren wir dann zwei Tasten, indem wir den Wert des Zählers inkrementieren und verringern. Wenn wir diese Schaltflächen verwenden, sehen wir, dass der Zähler tatsächlich reagiert.
Zweitens erstellen wir ein reaktionsschnelles von Person. In der Ansicht platzieren wir dann zwei Eingabesteuerelemente, mit denen der Name und Alter der Person bearbeitet werden. Wenn wir menschliche Eigenschaften bearbeiten, werden sie sofort aktualisiert.
Drittens erstellen wir ein mathematisches schreibgeschütztes Objekt. In der Ansicht setzen wir dann eine Taste, um den Wert der PI -Eigenschaft der Mathematik zu verdoppeln. Wenn wir jedoch auf die Schaltfläche klicken, wird in der Konsole eine Fehlermeldung angezeigt, in der uns das Objekt schreibgeschützt ist und wir seine Eigenschaften nicht ändern können.
Schließlich erstellen wir ein Alphabetnumber -Objekt, das wir nicht in einen Proxy konvertieren und es als ursprüngliches Objekt markieren möchten. Es enthält alle Buchstaben und ihre entsprechenden Zahlen (für die Kürze werden nur die ersten drei Buchstaben hier verwendet). Es ist unwahrscheinlich, dass sich diese Reihenfolge ändert, daher behalten wir dieses Objekt absichtlich als normales Objekt, was für die Leistung von Vorteil ist. Wir rendern den Objektinhalt in der Tabelle und setzen eine Schaltfläche, um den Wert des B -Attributs auf 3 zu ändern. Wir zeigen dies, um zu zeigen, dass das Objekt , obwohl dies geändert werden kann, dies jedoch nicht dazu führt, dass die Ansicht neu geführt wird.
Markraw eignet sich perfekt für Objekte, die wir nicht reaktionsschnell machen müssen, z. B. lange Listen von Ländercodes, Farbnamen und deren entsprechende hexadezimale Nummern usw.Schließlich verwenden wir die im nächsten Abschnitt beschriebene Typüberprüfungsmethode, um den Typ jedes von uns erstellten Objekts zu testen und zu bestimmen. Wir verwenden den Onbounted () Lifecycle Hook, um diese Überprüfungen auszulösen, wenn die Anwendung ursprünglich gerendert wird.
Typ -Checking -Methode
Die Methoden in dieser Gruppe sind die "flachen" Äquivalente von Ref, Reactive und Readonly:
Verstehen wir diese Methoden leichter, indem wir die folgenden Beispiele untersuchen:
<div id="app"> <h1>Hello! My name is {{ person.name }}. I'm {{ person.age }} years old.</h1> <button @click="addAgeProperty">Add "age" property</button> <p>Here are my favorite activities:</p> <ul> <li v-for="(item, index) in activities" :key="index">{{ item }} <button @click="editActivity(index)">Edit</button></li> </ul> <button @click="clearActivities">Clear the activities list</button> </div>
Dieses Beispiel beginnt mit dem Erstellen eines Einstellungen flacher Ref -Objekt. In der Ansicht fügen wir dann zwei Eingabesteuerelemente hinzu, um deren Breite und Höheneigenschaften zu bearbeiten. Aber wenn wir versuchen, sie zu ändern, sehen wir, dass sie nicht aktualisiert werden. Um dieses Problem zu lösen, fügen wir eine Schaltfläche hinzu, die das gesamte Objekt und alle Eigenschaften ändert. Jetzt funktioniert es. Dies liegt daran, dass der Wert des Wertes (Breite und Höhe als einzelne Eigenschaft) nicht in ein reaktionsschnelles Objekt konvertiert wird, sondern die Variation des Wertes (das gesamte Objekt) immer noch verfolgt wird.
Als nächstes erstellen wir einen Einstellungsgespräch mit flachem reaktivem Proxy, der die Breiten- und Höheneigenschaften und ein verschachteltes Koordeinobjekt enthält, das die X- und Y -Eigenschaften enthält. In der Ansicht setzen wir dann eine Eingabesteuerung für jede Eigenschaft. Wenn wir die Breite und Höheneigenschaften ändern, sehen wir, dass sie reaktionsmäßig aktualisiert werden. Wenn wir jedoch versuchen, die X- und Y -Eigenschaften zu ändern, sehen wir, dass sie nicht verfolgt werden.
Schließlich erstellen wir ein Einstellungsbetragsblock, das die gleichen Eigenschaften wie Einstellungen aufweist. Wenn wir versuchen, das Attribut der Breite oder Höhe zu ändern, wird in der Konsole eine Fehlermeldung angezeigt, in der uns das Objekt schreibgeschützt ist und wir seine Attribute nicht ändern können. Andererseits können die X- und Y -Eigenschaften ohne Probleme geändert werden.
verschachtelte Koordnungsobjekte aus den letzten beiden Beispielen werden von der Transformation nicht beeinflusst und bleiben als normale Objekte. Dies bedeutet, dass es frei modifiziert werden kann, aber alle Modifikationen davon werden nicht von Vue verfolgt.
Die nächsten drei Methoden werden verwendet, um den Proxy in Refs (s) oder normale Objekte zu konvertieren:
Lassen Sie uns sehen, wie diese Conversions im folgenden Beispiel funktionieren:
const App = new Vue({ el: '#app', data: { person: { name: "David" }, activities: [ "Reading books", "Listening music", "Watching TV" ] }, methods: { // 1. Add a new property to an object addAgeProperty() { this.person.age = 30 }, // 2. Setting an array item by index editActivity(index) { const newValue = prompt('Input a new value') if (newValue) { this.activities[index] = newValue } }, // 3. Modifying the length of the array clearActivities() { this.activities.length = 0 } } });
In diesem Beispiel erstellen wir zunächst ein grundlegendes Person, das wir als Quellobjekt verwenden werden.
Dann konvertieren wir die Namenseigenschaft der Person in einen Schiedsrichter mit demselben Namen. In der Ansicht fügen wir dann zwei Eingabesteuerelemente hinzu - eine für den Namen Ref und eine für die Besitz von Person. Wenn wir einen von ihnen ändern, wird der andere auch entsprechend aktualisiert, sodass die reaktionsschnelle Verbindung zwischen ihnen beibehalten wird.
Als nächstes wandeln wir alle Eigenschaften der Person in einen einzelnen REF um, der im Persondetails -Objekt enthalten ist. In der Ansicht fügen wir dann erneut zwei Eingabesteuerelemente hinzu, um einen REF zu testen, den wir gerade erstellt haben. Wie wir sehen können, wird das Alter von Persondetails wie im vorherigen Beispiel vollständig mit dem Alterseigentum der Person synchronisiert.
Schließlich konvertieren wir das von Person reaktionsende Objekt in ein normales Objekt von Rohperson. In der Ansicht fügen wir dann eine Eingabesteuerung hinzu, um die Hobby -Eigenschaft von Rawperson zu bearbeiten. Aber wie wir sehen können, verfolgt Vue konvertierte Objekte nicht.
Der letzte Satz von Methoden wird verwendet, um komplexe Werte zu berechnen und spezifische Werte zu "überwachen":
Betrachten wir das folgende Beispiel:
<div id="app"> <h1>Hello! My name is {{ person.name }}. I'm {{ person.age }} years old.</h1> <button @click="addAgeProperty">Add "age" property</button> <p>Here are my favorite activities:</p> <ul> <li v-for="(item, index) in activities" :key="index">{{ item }} <button @click="editActivity(index)">Edit</button></li> </ul> <button @click="clearActivities">Clear the activities list</button> </div>
In diesem Beispiel erstellen wir eine FullName -berechnete Variable, die basierend auf FirstName und Lastname Ref berechnet wird. In der Ansicht fügen wir dann zwei Eingabesteuerelemente hinzu, um die beiden Teile des vollständigen Namens zu bearbeiten. Wie wir sehen können, wird FullName, wenn wir einen Teil ändern, neu berechnet und die Ergebnisse aktualisiert.
Als nächstes erstellen wir einen Volumenref und setzen einen Uhreffekt dafür. Jedes Mal, wenn das Volumen geändert wird, wird der Effekt die Rückruffunktion ausgeführt. Um dies zu beweisen, fügen wir in der Ansicht eine Schaltfläche hinzu, die das Volumen um 1 erhöht. Wir legen eine Bedingung in der Rückruffunktion fest, um zu testen, ob der Wert des Volumens durch 3. TRUE teilnehmen kann. Wenn er true zurückgibt, wird eine Warnmeldung angezeigt. Der Effekt wird einmal ausgeführt, wenn die Anwendung startet, legt den Wert des Volumens fest und wird dann jedes Mal erneut ausgeführt, wenn der Volumenwert geändert wird.
Schließlich erstellen wir einen Status -Ref und setzen eine Uhrenfunktion, um ihre Änderungen zu verfolgen. Sobald sich der Status ändert, wird die Rückruffunktion ausgeführt. In diesem Beispiel fügen wir eine Taste hinzu, um den Status zwischen Spielen und Pause zu wechseln. Jedes Mal, wenn dies geschieht, wird eine Warnmeldung angezeigt.
Watcheffect und Uhren sehen in Bezug auf die Funktionalität sehr ähnlich, haben jedoch einige offensichtliche Unterschiede:
Wie Sie sehen, bietet die Vue 3 Responsive API eine Vielzahl von Methoden, die in verschiedenen Anwendungsfällen verwendet werden können. Die API ist sehr groß, und in diesem Tutorial erforsche ich nur die Grundlagen. Weitere detailliertere Explorations-, Detail- und Kantenfälle finden Sie in der Responsive API-Dokumentation.
In diesem Artikel stellen wir vor, was ein reaktionsschnelles System ist und wie es in Vue 2 und Vue 3 implementiert werden kann. Wir sehen, dass Vue 2 in Vue 3 einige Mängel erfolgreich gelöst hat. Der Vue 3 Responsive Mechanismus ist ein vollständiges Umschreiben, das auf modernen JavaScript -Funktionen basiert. Fassen wir seine Vor- und Nachteile zusammen.
Profis:
Nachteile:
Das Fazit ist, dass der Vue 3-Reaktionsmechanismus ein flexibles und leistungsstarkes System ist, das sowohl von VUE- als auch von Nicht-Vorstellungsentwicklern verwendet werden kann. Egal in welcher Situation Ihre Situation ist, schnappen Sie es sich einfach und fangen Sie an, etwas Erstaunliches zu bauen.
Vue 3 Responsive System ist ein grundlegender Aspekt von Vue.js, einem beliebten JavaScript -Framework. Es ist verantwortlich für die Verfolgung von Änderungen im Anwendungszustand und die Aktualisierung des DOM (Dokumentobjektmodells), um diese Änderungen widerzuspiegeln. Das System basiert auf dem Konzept von "reaktionsschnellen Objekten". Wenn sich die Eigenschaften dieser Objekte ändern, löst VUE automatisch die erforderlichen Aktualisierungen aus. Dies erleichtert Entwicklern, dynamische, reaktionsschnelle Webanwendungen zu erstellen.
Vue 3 wurde mithilfe des Proxy -Objekts von JavaScript vollständig umgeschrieben und bietet eine effizientere und leistungsfähigere Möglichkeit, Änderungen im Vergleich zum Objekt von Vue 2 zu verfolgen. DefineProperty -Methode. Dieses neue System ermöglicht Vue, Änderungen in verschachtelten Eigenschaften, eine Einschränkung von VUE 2, zu verfolgen. Es reduziert auch den Speicher Fußabdruck und verbessert die Leistung.
Um das Vue 3 Responsive System zu verwenden, müssen Sie Ihre Daten mit der Funktion reactive () einwickeln. Diese Funktion macht das Objekt und seine Eigenschaften reagieren. Wenn sich die Eigenschaft ändert, wird VUE automatisch Komponenten, die davon abhängen, automatisch ausgeleitet. Sie können auch die Ref () -Funktion verwenden, um eine einzelne variable Reaktion zu erzielen.
vue 3 wird verwendet, um ansprechende Verweise auf Werte zu erstellen. Es wickelt den Wert in ein Objekt mit einer einzelnen Eigenschaft ".Value" und macht dieses Objekt reaktionsschnell. Dies bedeutet, dass bei ändert der Wert wird eine Komponente, die diesen REF verwendete, aktualisiert.
reactive () und ref () werden verwendet, um Daten in Vue 3 reagieren zu lassen, sie werden jedoch in verschiedenen Szenarien verwendet. Die Funktion reactive () wird verwendet, um ein Objekt reaktionsschnell zu machen, während die Ref () -Funktion verwendet wird, um einen Basiswert wie eine Zeichenfolge oder eine Zahl anzusprechen. Ref () kann jedoch auch mit Objekten verwendet werden, in diesem Fall verhält es sich ähnlich wie reaktiv ().
vue 3 Die Reaktionsfähigkeit von Arrays entspricht denjenigen, die Objekte verarbeiten. Wenn Sie die Reactive () -Funktion verwenden, um das Array reaktionsschnell zu machen, ändert sich Vue -Tracks Änderungen an den Array -Elementen und deren Länge. Dies bedeutet, dass VUE, wenn Sie Elemente hinzufügen, löschen oder ersetzen, Komponenten aktualisiert, die von diesem Array abhängen.
Die Torefs () -Funktion in Vue 3 wird verwendet, um ein reaktionsschnelles Objekt in ein normales Objekt umzuwandeln, wobei jede Eigenschaft des ursprünglichen Objekts als Ref dargestellt wird. Dies ist nützlich, wenn Sie ein reaktionsschnelles Objekt dekonstruieren möchten, es aber dennoch reaktionsschnell halten möchten.
Sie können die Funktion markraw () verwenden, um zu verhindern, dass das Objekt reagiert. Dies ist in einigen Fällen nützlich, in denen VUE nicht die Änderungen des Objekts verfolgen soll.
Die Funktion contcuted () in Vue 3 wird verwendet, um eine reaktionsschnelle Eigenschaft zu erstellen, die von anderen reaktionsschnellen Eigenschaften abhängt. Der Wert der berechneten Eigenschaft wird automatisch aktualisiert, wenn sich die Abhängigkeiten ändern. Dies ist sehr nützlich für Berechnungen oder Transformationen, die bei Änderungen der zugrunde liegenden Daten aktualisiert werden sollten.
Vue 3 unterstützt die Karte von JavaScript und setzen Sie Datenstrukturen. Wenn Sie eine Karte vornehmen oder reaktionsschnell festlegen, verfolgt Vue -Verfolgung Änderungen an den Einträgen bzw. Elementen. Dies bedeutet, dass VUE, wenn Sie einen Eintrag oder ein Element hinzufügen, löschen oder ersetzen, Komponenten aktualisiert, die von MAP oder SET abhängen.
Das obige ist der detaillierte Inhalt vonVerständnis des neuen Reaktivitätssystems in Vue 3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!