Adloun

Vue : construire une application web (école d'ingénieur) · Chapitre 5 · Application directe du cours

Un gabarit écrit dans la page

Composants · niveau 2

Énoncé

Le composant CarteLivre déclare les props titre et prixUnitaire. On l'utilise ainsi dans la page (code/ch5/erreurs/gabarit-dom/) :


<div id="app">
  <CarteLivre :prixUnitaire="32" titre="Programmation Java"/>
  <p>Fin du catalogue.</p>
</div>

Qu'affiche la page ? Que dit la console ? Corriger.

Corrigé

La page n'affiche que « Fin du catalogue. », et la console dit :


[Vue warn]: Failed to resolve component: cartelivre
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
  at <App>

Le navigateur a lu la page avant Vue, avec les règles de HTML. Il a mis le nom de la balise et ses attributs en minuscules : <cartelivre prixunitaire="32">, que Vue ne relie à aucun composant (« Failed to resolve component »). Il a ignoré la barre de /> : la balise reste ouverte, et le paragraphe qui suit est devenu son contenu. Le DOM réel est


<cartelivre prixunitaire="32" titre="Programmation Java"><p>Fin du catalogue.</p></cartelivre>

La correction :


<div id="app">
  <carte-livre :prix-unitaire="32" titre="Programmation Java"></carte-livre>
  <p>Fin du catalogue.</p>
</div>

qui affiche


Programmation Java
32 €
Fin du catalogue.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →