Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: show, if

В чём разница между v-if и v-show во Vue?

Этот вопрос проверяет понимание условного рендеринга и работы с DOM во Vue.

Короткий ответ

v-if условно добавляет или удаляет элемент из DOM, а v-show лишь управляет его видимостью через CSS. При v-if компонент создаётся и уничтожается заново. v-show всегда оставляет элемент в DOM, меняя свойство display. Это влияет на производительность и поведение компонента. Выбор директивы зависит от сценария использования.

Длинный ответ

Во Vue существуют две основные директивы для условного отображения элементов — v-if и v-show. Они решают одну задачу, но работают по-разному.

Принцип работы v-if

v-if управляет существованием элемента в DOM.

  • Элемент создаётся только при выполнении условия

  • При смене условия элемент удаляется

  • Хуки жизненного цикла вызываются при каждом создании и уничтожении

Пример:

<div v-if="isVisible">
  Контент
</div>

Принцип работы v-show

v-show управляет только отображением.

  • Элемент всегда присутствует в DOM

  • Меняется CSS-свойство display

  • Компонент создаётся один раз

Пример:

<div v-show="isVisible">
  Контент
</div>

Ключевые различия

  1. Работа с DOM

    • v-if добавляет и удаляет узлы

    • v-show скрывает и показывает узлы

  2. Производительность

    • v-if дороже при частых переключениях

    • v-show дороже при начальной загрузке

  3. Жизненный цикл

    • v-if повторно запускает хуки

    • v-show не влияет на жизненный цикл

Вывод

v-if подходит для редко меняющихся условий, а v-show — для частого переключения видимости, когда важно сохранить компонент в DOM.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#show

#if

Подпишись на React Developer в телеграм