Attributs props de Vue3
propsest un moyen de transmettre des données entre les composants.
Dans Vue.js, un composant parent peutpropstransmettre des données aux composants enfants. Une fois que le composant enfant reçoit ces données, il peut effectuer le rendu ou d'autres opérations en fonction des données.
Analogie
Vous pouvezpropsimaginez-le comme un facteur. Le composant parent est l'expéditeur, le composant enfant est le destinataire. Le composant parent transmet les données (une lettre) viaprops(le facteur) au composant enfant. Après avoir reçu les données, le composant enfant peut les traiter en fonction du contenu.
Comment utiliser les props ?
Dans Vue.js, l'utilisationpropsest très simple. Ci-dessous, nous utilisons un exemple pour illustrer comment utiliserprops。
Exemple : passer et recevoir des props
Supposons que nous ayons un composant parentParentComponentet un composant enfantChildComponent. Nous voulons que le composant parent transmette un message au composant enfant.
1. Composant parent (ParentComponent.vue)
Exemple
<div>
<ChildComponent :message="parentMessage" />
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
parentMessage: 'Bonjour du parent !'
};
}
};
</script>
2. Composant enfant (ChildComponent.vue)
Exemple
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
props: {
message: {
type: String,
required: true
}
}
};
</script>
Explication
Composant parent: Dans le composant parent, nous
:message="parentMessage"vaparentMessagetransmettons les données au composant enfant.parentMessageest une variable définie dans le composant parent, et sa valeur est'Hello from Parent!'。Composant enfant: Dans le composant enfant, nous utilisons
propspour recevoir les données transmises par le composant parent.messageest défini dans le composant enfantprops, et son type estString, et il est défini àrequired: true, indiquant que cecipropsest requis.Rendu: Après que le composant enfant reçoit
message, il le rend dans le template, en l'affichant comme<p>Hello from Parent!</p>。
Types et validation des props
Dans Vue.js, vous pouvezpropsspécifier des types et des règles de validation pour garantir que les données transmises correspondent aux attentes.
Exemple : Types et validation
Exemple
message: {
type: String,
required: true
},
age: {
type: Number,
default: 18
},
hobbies: {
type: Array,
validator: function (value) {
return value.length > 0;
}
}
}
Explication
**
type**: spécifierpropsle type de données. Il peut êtreString、Number、Boolean、Array、Objectetc.**
required**: spécifierpropssi elle est requise. Si défini àtrue, le composant parent doit la passerprops, sinon un avertissement sera lancé.**
default**: pourpropsdéfinir une valeur par défaut. Si le composant parent ne la passe pasprops, le composant enfant utilisera la valeur par défaut.**
validator**: fonction de validation personnalisée, utilisée pour validerpropssi la valeur remplit des conditions spécifiques.
Notes
Flux de données unidirectionnel: Dans Vue.js,
propsest unidirectionnel, ce qui signifie que les données ne peuvent circuler que du composant parent vers le composant enfant. Un composant enfant ne doit pas modifier directementpropsla valeur. Si vous devez la modifier, vous pouvez informer le composant parent pour qu'il effectue la modification en déclenchant un événement.Conventions de nommage:
propsIl est recommandé d'utiliser camelCase pour le nommage, par exempleuserName. Lors du passageprops, il est recommandé d'utiliser le délimiteur kebab-case, par exempleuser-name。Props dynamiques: peuvent être réalisées via
v-bindou:liaison dynamiqueprops, par exemple:message="parentMessage"。
Autres extensions
Vue3 API des options