Директива v-show във Vue

Друг вариант за условно показване е директивата v-show. Използва се по много подобен начин:

html<template>
  <p v-show="isAuth">
    +++
  </p>
</template>

Разликата е, че елементът с v-show винаги ще бъде изобразяван и ще остане в DOM, а ще се превключва само неговото CSS свойство display.

Директивата v-if изпълнява "истинско" условно изобразяване, тъй като гарантира, че слушателите на събития и дъщерните компоненти вътре в блока се унищожават правилно и се пресъздават при превключване на условието.

Директивата v-if също така е мързелива: ако условието е невярно по време на първоначалното изобразяване, тя няма да направи нищо - условният блок няма да бъде изобразен, докато условието не стане истинно.

За сравнение, v-show е много по-проста - елементът винаги се изобразява, независимо от началното състояние, с превключване базирано на CSS.

Като цяло, v-if има по-високи разходи за превключване, докато v-show има по-големи разходи за първоначално изобразяване. Така че използвайте v-show, ако превключванията ще са чести, и предпочитайте v-if, ако условието може и да не се промени по време на изпълнение.

Директивата v-show не може да се използва върху елемент template и не работи с v-else.

Задание 1

Даден е параграф и бутон. Направете така, че параграфът да се показва/скрива при натискане на бутона.

Задание 2

Разкажете какви са разликите между директивите v-show и v-if.

Задание 3

Разкажете кога е по-добре да се използва директивата v-show, а кога - v-if.

Задание 4

Разкажете какви ограничения има директивата v-show.