Cet article partage principalement avec vous l'explication détaillée du rendu conditionnel de Vue.js. Dans les modèles de chaînes, tels que Handles, nous devons écrire un bloc conditionnel comme celui-ci :
<!-- Handlebars 模板 -->{{#if ok}} <h1>Yes</h1>{{/if}}
Dans Vue, nous utilisons la directive v-if
pour réaliser la même fonction :
<h1 v-if="ok">Yes</h1>
Vous pouvez également utiliser v-else
pour ajouter un "bloc else" :
<h1 v-if="ok">Yes</h1>No
# Utiliser le regroupement de rendu conditionnel <template>
sur les éléments v-if
Parce que v-if
est une directive, elle doit être ajoutée à un élément. Mais que se passe-t-il si vous souhaitez changer plusieurs éléments ? À ce stade, vous pouvez traiter un <template>
élément comme un élément d'emballage invisible et utiliser v-if
dessus. Le résultat final du rendu sera sans <template>
éléments.
<p id="example"> <template v-if='ok'> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template></p>
var vm = new Vue({ el: '#example', data: { ok: true } })
# v-else
et v-else-if
peuvent être représentés par la directive v-else
pour représenter le "bloc else" de v-if
: < L'élément 🎜>
<p v-if="Math.random() > 0.5"> Now you see me</p> <p v-else> Now you don't </p>
<p v-if="type === 'A'"> A </p> <p v-else-if="type === 'B'"> B </p> <p v-else-if="type === 'C'"> C </p> <p v-else> Not A/B/C </p>
doit immédiatement suivre l'élément avec v-else
ou v-if
, sinon il ne sera pas reconnu. v-else-if
, v-else
doit également suivre un élément avec v-else-if
ou v-if
. v-else-if
. v-show
<h1 v-show="ok">Hello!</h1>
seront toujours rendus et resteront dans le DOM. v-show
Basculez simplement l’affichage des propriétés CSS de l’élément. v-show
Notez que ne prend pas en charge l'élément v-show
, ni ne prend en charge <template>
. v-else
est un "vrai" rendu conditionnel car il garantit que les écouteurs d'événements et les sous-composants à l'intérieur du bloc conditionnel pendant le changement sont détruits et reconstruits de manière appropriée. v-if
est également paresseux : si la condition est fausse lors du rendu initial, rien n'est fait - le bloc conditionnel ne sera rendu qu'à la première fois que la condition devient vraie. v-if
est beaucoup plus simple : l'élément est toujours rendu quelles que soient les conditions initiales et est simplement basculé en fonction du CSS. v-show
a une surcharge de commutation plus élevée, tandis que v-if
a une surcharge de rendu initiale plus élevée. Par conséquent, il est préférable d'utiliser v-show
si vous devez changer très fréquemment ; si les conditions changent rarement au moment de l'exécution, il est préférable d'utiliser v-show
. v-if
<!-- Handlebars 模板 -->{{#if ok}} <h1>Yes</h1>{{/if}}
La directive réalise la même fonction : v-if
<h1 v-if="ok">Yes</h1>
pour ajouter un "bloc else" : v-else
<h1 v-if="ok">Yes</h1>No
# Utilisez < sur le element 🎜> Regroupement de rendu conditionnel <template>
v-if
Parce que
élément v-if
comme un élément d'emballage invisible <template>
et utiliser dessus. Le résultat final du rendu sera sans v-if
éléments. <template>
<p id="example"> <template v-if='ok'> <h1>Title</h1> <p>Paragraph 1</p> <p>Paragraph 2</p> </template></p>
var vm = new Vue({ el: '#example', data: { ok: true } })
et v-else
v-else-if
peuvent être représentés par la directive
: < L'élément 🎜>v-else
v-if
<p v-if="Math.random() > 0.5"> Now you see me</p> <p v-else> Now you don't </p>
<p v-if="type === 'A'"> A </p> <p v-else-if="type === 'B'"> B </p> <p v-else-if="type === 'C'"> C </p> <p v-else> Not A/B/C </p>
, sinon il ne sera pas reconnu. v-else
v-if
Semblable à v-else-if
,
ou v-else
. v-else-if
v-if
v-showv-else-if
v-show
La différence est que les éléments avec
<h1 v-show="ok">Hello!</h1>
v-show
v-show
Notez que
, ni ne prend en charge . v-show
<template>
v-else
v-if vs v-show
v-if
est également paresseux : si la condition est fausse lors du rendu initial, rien n'est fait - le bloc conditionnel ne sera rendu qu'à la première fois que la condition devient vraie.
En revanche, v-if
est beaucoup plus simple : l'élément est toujours rendu quelles que soient les conditions initiales et est simplement basculé en fonction du CSS.
En général, v-if
a une surcharge de commutation plus élevée, tandis que v-show
a une surcharge de rendu initiale plus élevée. Par conséquent, il est préférable d'utiliser v-show
si vous devez changer très fréquemment ; si les conditions changent rarement au moment de l'exécution, il est préférable d'utiliser v-if
.
Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!