Comment utiliser v-if dans la boucle v-for dans vue.js 2
P粉573809727
P粉573809727 2024-01-10 17:51:13
0
1
408

J'ai cette configuration de code

<div v-for="person in persons">
    <div v-if="person.status == 'public'" :key="person.id">
        Hi,my name is {{person.name}}
    </div>
    <div v-else :key="person.id">
        This person is private
    </div>
</div>

person 对象中的 status Toutes les valeurs des propriétés sont "publiques" !

Mais dans l’extrait ci-dessus, ce n’est pas le bloc if 块,而是 else qui continue de s’exécuter.

Si je réécris le code comme ceci :

<div v-for="person in persons" :key="person.id">
    <div v-if="person.status == 'public'">
        Hi,my name is {{person.name}}
    </div>
    <div v-else>
        This person is private
    </div>
</div>

Ensuite, cela fonctionnera normalement.

Qu'est-ce qui ne va pas avec le premier clip ?

On dirait que l'attribut "clé" joue un rôle à cet égard. La façon dont je l'utilise est-elle mauvaise ? Pourquoi cela affecte-t-il le rendement ?

Laquelle de ces méthodes est la manière la plus correcte d'écrire une instruction « if » dans une boucle « for » ?

J'ai déjà utilisé la première méthode dans d'autres boucles de mon code et je n'ai eu aucun problème jusqu'à aujourd'hui. Dois-je tous les mettre à jour pour qu'ils soient similaires à la deuxième méthode afin d'éviter un comportement étrange comme celui-ci ?

P粉573809727
P粉573809727

répondre à tous(1)
P粉511896716

De vue v-for et v-if

Vous avez correctement utilisé v-forv-if。问题在于 :key étant placé sur le bloc conditionnel.

Dans tous les cas, quelque chose sera rendu à l'intérieur du div, vous avez deux résultats possibles et la clé devrait être dans l'attribut v-for 线上。您不应有条件地呈现 :key.

// 1
<div>
   <div>
      Hi,my name is john
   </div>
</div>

// 2
<div>
  <div>
     This person is private
  </div>
</div>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal