Pokazywanie i ukrywanie elementów za pomocą dyrektywy v-if
Najbardziej podstawową dyrektywą umożliwiającą pokazywanie elementów warunkowo jest dyrektywa v-if. Odpowiada ona instrukcji warunkowej if (warunek) { /*...kod...*/ } w JavaScript. Jeśli wartość przekazanego do niej wyrażenia będzie prawdziwa, to element zostanie dodany do drzewa DOM. Jeśli będzie fałszywa, w ogóle się tam nie pojawi.
new Vue({
  data() {
    return {
      text: '',
    };
  },
}).$mount('#app');
<div id="app">
  <input v-model="text" />
  <p v-if="text === ''">Wpisz coś</p>
</div>
Na powyższym przykładzie możesz zobaczyć jak proste jest używanie dyrektywy v-if - wpisz coś do pola tekstowego. Warunek text === '' jest spełniony wtedy, gdy pole text jest puste i to właśnie wtedy pokazywany jest tekst "Wpisz coś".
Scenariusz alternatywny z v-else
Jeśli na podstawie jednego warunku chcesz obrać jeden z dwóch scenariuszy, możesz użyć dyrektywy v-else. Nie przyjmuje ona żadnej wartości, a element zawierający v-else musi następować bezpośrednio po elemencie zawierającym v-if (lub po  v-else-if, o której za chwilę). Inaczej Vue nie będzie w stanie stwierdzić do czego odnosi się dany v-else.
<div id="app">
  <input v-model="text" />
  <p v-if="text === ''">Wpisz coś</p>
  <p v-else>Dzięki!</p>
</div>
Jeśli alternatyw może być więcej, użyj dyrektywy v-else-if, której wartością będzie kolejny warunek - zupełnie jak w normalnym JS.
<div id="app">
  <input v-model="text" />
  <p v-if="text === ''">Wpisz coś</p>
  <p v-else-if="text === 'tajne'">Zgadłaś/eś!</p>
  <p v-else>Nie zgadłaś/eś :(</p>
</div>
Chowanie i pokazywanie elementów z użyciem v-show
Czasami napotkasz na sytuację, w której dodanie/usunięcie elementu przez v-if/v-else będzie z różnych względów niepożądane. Możesz wtedy użyć dyrektywy v-show, która w przypadku, kiedy warunek nie jest spełniony nadaje elementowi styl display: none;. Oznacza to, że jest on zawsze obecny w drzewie DOM, ale czasami po prostu niewidoczny.
Warto wspomnieć, że dyrektywa v-else nie działa razem z v-show. Mogę Ci wyjaśnić ze szczegółami, dlaczego tak jest na szkoleniu: zapisz się na szkolenie z Vue.js. Aby osiągnąć ten efekt musisz po prostu powtórzyć v-show z odwróconym warunkiem. Ilustruje to poniższy przykład.
Ćwiczenie
Użyj narzędzi dla programistów w przeglądarce, z której korzystasz i zobacz na własne oczy czym różnią się od siebie dyrektywy v-if/v-else oraz v-show.
