Vue3 props-Attribute
propsist eine Möglichkeit, Daten zwischen Komponenten weiterzugeben.
In Vue.js kann eine ElternkomponentepropsDaten an untergeordnete Komponenten weitergeben. Nachdem die untergeordnete Komponente diese Daten empfangen hat, kann sie die Daten rendern oder andere Operationen basierend auf den Daten ausführen.
Analogie
Sie könnenpropsStell es dir wie einen Briefträger vor. Die übergeordnete Komponente ist der Absender, die untergeordnete Komponente ist der Empfänger. Die übergeordnete Komponente übergibt die Daten (einen Brief) durchprops(den Briefträger) an die untergeordnete Komponente. Nach Empfang der Daten kann die untergeordnete Komponente sie entsprechend dem Inhalt verarbeiten.
Wie verwendet man Props?
In Vue.js ist die Verwendung vonpropssehr einfach. Im Folgenden verwenden wir ein Beispiel, um die Verwendung zu veranschaulichen.props。
Beispiel: Props übergeben und empfangen
Angenommen, wir haben eine übergeordnete KomponenteParentComponentund eine untergeordnete KomponenteChildComponent. Wir möchten, dass die übergeordnete Komponente eine Nachricht an die untergeordnete Komponente übergibt.
1. Übergeordnete Komponente (ParentComponent.vue)
Beispiel
<div>
<ChildComponent :message="parentMessage" />
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
parentMessage: 'Hello from Parent!'
};
}
};
</script>
2. Kindkomponente (ChildComponent.vue)
Beispiel
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
props: {
message: {
type: String,
required: true
}
}
};
</script>
Erklärung
Elternkomponente: In der Elternkomponente
:message="parentMessage"wirdparentMessageübergeben wir Daten an die Kindkomponente.parentMessageist eine Variable, die in der Elternkomponente definiert ist, und ihr Wert ist'Hello from Parent!'。Kindkomponente: In der Kindkomponente verwenden wir
props, um die von der Elternkomponente übergebenen Daten zu empfangen.messageist in der Kindkomponente definiertprops, und ihr Typ istString, und sie wird gesetzt aufrequired: true, was darauf hinweist, dass diespropsist erforderlich.Rendering: Nachdem die Kindkomponente empfängt
message, rendert sie es in der Vorlage und zeigt es als<p>Hello from Parent!</p>。
Typen und Validierung von Props
In Vue.js kannst dupropsTypen und Validierungsregeln angeben, um sicherzustellen, dass die übergebenen Daten den Erwartungen entsprechen.
Beispiel: Typen und Validierung
Beispiel
message: {
type: String,
required: true
},
age: {
type: Number,
default: 18
},
hobbies: {
type: Array,
validator: function (value) {
return value.length > 0;
}
}
}
Erklärung
**
type**: angebenpropsden Datentyp. Er kannString、Number、Boolean、Array、Objectusw.**
required**: angebenpropsob es erforderlich ist. Wenn auftrue, muss die übergeordnete Komponente dieseprops, andernfalls wird eine Warnung ausgegeben.**
default**: fürpropseinen Standardwert festlegen. Wenn die übergeordnete Komponente diese nicht übergibtprops, verwendet die untergeordnete Komponente den Standardwert.**
validator**: benutzerdefinierte Validierungsfunktion, die verwendet wird, um zu validierenpropsob der Wert bestimmte Bedingungen erfüllt.
Hinweise
Einweg-Datenfluss: In Vue.js,
propsist unidirektional, was bedeutet, dass Daten nur von der übergeordneten Komponente zur untergeordneten Komponente fließen können. Eine untergeordnete Komponente sollte nicht direktpropsden Wert ändern. Wenn Sie ihn ändern müssen, können Sie die übergeordnete Komponente benachrichtigen, die Änderung vorzunehmen, indem Sie ein Ereignis auslösen.Namenskonventionen:
propsEs wird empfohlen, camelCase für die Benennung zu verwenden, zum BeispieluserName. Beim Übergebenprops, wird empfohlen, kebab-case als Trennzeichen zu verwenden, zum Beispieluser-name。Dynamische Props: lassen sich erreichen durch
v-bindoder:dynamische Bindungprops, zum Beispiel:message="parentMessage"。
Weitere Erweiterungen
Vue3 Options API