Vue3 data() Funktion
In Vue3,data()Die Funktion ist eine der Kernfunktionen, mit denen der interne Zustand (Daten) einer Komponente definiert wird.
data()Die Funktion gibt ein Objekt zurück, und die Eigenschaften in diesem Objekt sind die internen Daten der Komponente, auf die über Templates oder andere Logik zugegriffen und die manipuliert werden können.
data()Die Funktion ist ein wichtiger Bestandteil jeder Vue-Komponente, durch die der Datenzustand der Komponente initialisiert werden kann.
Grundlegende Verwendung der data()-Funktion
In Vue3,data()Die Funktion wird normalerweise als Funktion definiert und gibt ein Objekt zurück. Dieses Objekt enthält die von der Komponente benötigten Dateneigenschaften.
Beispielcode
Beispiel
data() {
return {
message: 'Hello, Vue3!',
count: 0
};
}
};
Erklärung
data()Die Funktion gibt ein Objekt zurück, das zwei Eigenschaften enthält:message: einen Datenwert vom Typ String mit einem Anfangswert von'Hello, Vue3!'。count: einen numerischen Datenwert mit einem Anfangswert von0。
- Diese Daten können direkt im Template oder in den Methoden der Komponente verwendet werden.
Warum ist data() eine Funktion?
In Vue3,data()muss eine Funktion sein, anstatt direkt ein Objekt zurückzugeben. Das liegt daran, dass Vue-Komponenten mehrmals wiederverwendet werden können. Wenndata()ein Objekt ist, dann teilen alle Instanzen dasselbe Datenobjekt, was zu Datenkonflikten führt.
Durchdata()Indem man es als Funktion definiert, ruft Vue bei jeder Erstellung einer Komponenteninstanz diese Funktion auf und gibt ein neues Datenobjekt zurück, wodurch die Daten jeder Instanz unabhängig bleiben.
Beispiel
Beispiel
data() {
return {
message: 'Hello, Vue3!'
};
}
};
- Jedes Mal, wenn eine Komponenteninstanz erstellt wird,
data()wird die Funktion aufgerufen und gibt brandneuemessageDaten zurück.
Merkmale der data()-Funktion
1. Reaktive Daten
data()Die Eigenschaften im zurückgegebenen Objekt werden von Vue in reaktive Daten umgewandelt. Wenn sich diese Daten ändern, aktualisiert Vue automatisch die Ansichten, die von ihnen abhängen.
2. Dateninitialisierung
data()Die Funktion wird aufgerufen, wenn die Komponente instanziiert wird, um den Datenzustand der Komponente zu initialisieren.
3. Datenisolierung
Dadata()Sie ist eine Funktion, jede Komponenteninstanz hat ein unabhängiges Datenobjekt, wodurch Datenfreigabe und Konflikte vermieden werden.
Hinweise zur data()-Funktion
1. Keine Arrow-Funktionen verwenden
data()Die Funktion darf keine Arrow-Funktion sein, da Arrow-Funktionen keinen eigenenthisKontext haben, was dazu führt, dass auf die Komponenteninstanz falsch zugegriffen wird.
Falsches Beispiel:
Beispiel
data: () => ({
message: 'Hello, Vue3!'
})
};
Korrektes Beispiel:
Beispiel
data() {
return {
message: 'Hello, Vue3!'
};
}
};
2. Vermeiden Sie es, Eigenschaften der Vue-Instanz direkt zu ändern
Indata()In der Funktion dürfen Sie nicht direkt Eigenschaften der Vue-Instanz ändern (wie z. B.this.$data), sondern definieren Sie Daten, indem Sie ein Objekt zurückgeben.
Praktische Übung
Versuchen Sie, eine Vue-Komponente zu erstellen, und definieren Sie indata()der Funktion die folgenden Daten:
username: Initialwert ist ein leerer String''。age: Initialwert ist0。isStudent: Initialwert istfalse。
Beispiel
<div>
<h1>Benutzerinformationen</h1>
<p>Benutzername: {{ username }}</p>
<p>Alter: {{ age }}</p>
<p>Ist Student: {{ isStudent ? 'Yes' : 'No' }}</p>
</div>
</template>
<script>
import { defineComponent } from 'vue';
export default defineComponent({
name: 'UserInfo', // Komponentenname
data() {
return {
username: '', // Anfangswert ist eine leere Zeichenkette
age: 0, // Anfangswert ist 0
isStudent: false // Anfangswert ist false
};
}
});
</script>
<style scoped>
/* Optionale Stile */
h1 {
color: #2c3e50;
}
p {
font-size: 16px;
}
</style>
Weitere Erweiterungen
Vue3 Options API