Adloun

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

Cases sans clé

Gabarits et directives · niveau 2

Énoncé

Une liste sans :key affiche trois livres, chacun avec une case à cocher que Vue ne gère pas. On coche « Analyse », puis on clique sur « Retirer le premier ». Quelle case est cochée ? Et avec :key="livre" ?


<div id="app">
  <ul>
    <li v-for="livre in livres">
      <label><input type="checkbox"> {{ livre }}</label>
    </li>
  </ul>
  <button type="button" @click="livres.shift()">Retirer le premier</button>
</div>

const { createApp, ref } = Vue;

createApp({
  setup() {
    const livres = ref(["Java", "Analyse", "Petit Prince"]);
    return { livres };
  },
}).mount("#app");

Corrigé

Sans clé, après le retrait :


[ ] Analyse
[x] Petit Prince

Vue a supprimé le dernier élément du DOM et changé le texte des deux premiers : la case cochée, restée sur la deuxième ligne, accompagne maintenant « Petit Prince ». Avec :key="livre" (avec-cle.html), Vue supprime l'élément de « Java » et la coche reste sur « Analyse » :


[x] Analyse
[ ] Petit Prince

Le titre lui-même sert de clé, car il est unique dans cette liste ; avec des objets, on prendrait leur identifiant.

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 →