Vue : construire une application web (école d'ingénieur) · Chapitre 5 · Exercice de TD
Une ligne de panier
Composants · niveau 1 (application)
Énoncé
Écrire un composant LignePanier qui reçoit un titre, un prix et une quantité (1 par défaut) et affiche « 3 × L'Étranger à 7,90 € = 23,70 € ». Le sous-total est-il une prop, une donnée locale ou une valeur calculée ? Pourquoi faut-il l'arrondir ?
Corrigé
const LignePanier = {
template: "#modele-ligne-panier",
props: {
titre: { type: String, required: true },
prix: { type: Number, required: true },
quantite: { type: Number, default: 1 },
},
setup(props) {
// Arrondi au centime : 3 × 7,9 vaut 23,700000000000003 en flottant
const sousTotal = computed(() => Math.round(props.prix * props.quantite * 100) / 100);
return { sousTotal, euros };
},
};
2 × Le Petit Prince à 8,50 € = 17,00 €
3 × L’Étranger à 7,90 € = 23,70 €
Le sous-total n'est pas une prop (le parent n'a pas à le calculer), ni une donnée locale (il deviendrait faux dès que la quantité change) : c'est une valeur calculée à partir des props. En flottants, vaut ; l'affichage en euros l'arrondirait, mais un total calculé à partir de sous-totaux non arrondis peut finir décalé d'un centime : on arrondit au centime dès le calcul.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.