В Petite-Vue директива v-if используется для
условного отображения элементов DOM. Она позволяет
динамически добавлять или удалять элементы из дерева документа в
зависимости от значения выражения.
Синтаксис:
<div v-if="условие">
Этот блок отображается только если условие истинно
</div>
Значение условие должно быть логическим
или выражением, которое возвращает true или
false. Если значение истинно, элемент создаётся и
вставляется в DOM; если ложно — элемент полностью удаляется из DOM.
<div v-if="isVisible">
Содержимое видно
</div>
const App = {
isVisible: true
}
petite(App)
Для управления альтернативными вариантами отображения Petite-Vue
поддерживает конструкции v-else и
v-else-if.
v-if ложно.Пример:
<div v-if="score > 80">Отлично</div>
<div v-else-if="score > 50">Хорошо</div>
<div v-else>Нужно улучшить</div>
const App = {
score: 65
}
petite(App)
В этом примере отображается блок с текстом “Хорошо”, так как значение
score попадает в диапазон второго условия.
v-if полностью управляет созданием и
уничтожением элемента DOM. Это отличается от
v-show, который только меняет CSS-свойство
display.
v-if подходит для блоков, которые редко
меняются, так как повторное создание DOM требует больше
ресурсов.v-show предпочтительнее для частых переключений
видимости.Условный рендеринг можно комбинировать с вычисляемыми значениями, методами или состояниями, изменяемыми динамически.
<div v-if="hasItems()">Есть элементы</div>
<div v-else>Элементы отсутствуют</div>
const App = {
items: [1, 2, 3],
hasItems() {
return this.items.length > 0
}
}
petite(App)
Здесь метод hasItems() возвращает логическое значение,
которое определяет, какой блок будет отображён.
v-if можно использовать вложенно, чтобы
создавать сложные условные структуры.
<div v-if="user">
<p v-if="user.isAdmin">Администратор</p>
<p v-else>Пользователь</p>
</div>
<div v-else>
Нет пользователя
</div>
const App = {
user: { isAdmin: false }
}
petite(App)
Если объект user существует, проверяется его свойство
isAdmin и отображается соответствующий текст.
Если требуется управлять несколькими элементами
одновременно, используется обёртка
<template>:
<template v-if="isLoggedIn">
<h1>Добро пожаловать</h1>
<p>Вы вошли в систему</p>
</template>
<template> не создаёт отдельный элемент в DOM, но
позволяет условно рендерить несколько дочерних элементов.
v-if для большого
количества мелких элементов в списках. В таких случаях лучше
использовать v-show или оптимизировать структуру
данных.v-if с v-for требует
аккуратности: проверка условия должна идти до или внутри
цикла, иначе возможны лишние вычисления.v-if контролирует наличие элемента в
DOM, а не только его видимость.v-else и v-else-if позволяют строить
цепочки условий.v-if и <template> дают
гибкость при сложной структуре интерфейса.Использование v-if в Petite-Vue обеспечивает
чистый и управляемый DOM, упрощает динамическую логику
отображения и делает шаблоны более декларативными.