AI
prepair.app
Пройти интервью →
EnglishРусскийУкраїнська
💚

Senior Vue Frontendвопросы на собеседовании Vue

Senior · 5+ лет опыта

Собеседование Vue фокусируется на системе реактивности, Composition API и связи между компонентами. Ниже — самые частые вопросы с эталонными ответами. Senior: архитектуру, трейд-оффы, менторство и принятие решений.

Темы для подготовки

Реактивность: ref и reactive
Composition API vs Options API
Жизненный цикл компонента
Pinia / Vuex
Слоты и пропсы
Vue Router

6 вопросов уровня Senior с ответами

1

Объясните разницу между computed и watch.

Ответ

computed выводит значение из другого реактивного состояния, кеширует его и пересчитывает только при изменении зависимости — берите его всегда, когда результат это значение, которое вы рендерите. watch выполняет побочный эффект в ответ на изменение: загрузка данных, запись в хранилище, запуск анимации. Если внутри watcher вы присваиваете переменную, почти наверняка нужен computed.

2

Назовите хуки жизненного цикла во Vue 3.

Ответ

В Composition API это onBeforeMount и onMounted, onBeforeUpdate и onUpdated, onBeforeUnmount и onUnmounted, плюс onErrorCaptured, onActivated и onDeactivated для кешируемых компонентов. Сам setup() заменяет beforeCreate и created. В onMounted место для доступа к DOM и подписок, а в onUnmounted их обязательно нужно снять.

3

Что такое слоты? Приведите пример scoped slot.

Ответ

Слот — это место в шаблоне дочернего компонента, которое родитель заполняет своей разметкой, благодаря чему компоненты-обёртки становятся переиспользуемыми. Scoped slot дополнительно передаёт данные обратно из ребёнка в содержимое слота — например компонент списка сам занимается загрузкой и перебором, а родитель решает, как отрисовать каждый элемент. Это инвертирует контроль: за поведение отвечает ребёнок, за представление — родитель.

4

Как передать данные от дочернего компонента к родительскому?

Ответ

Ребёнок объявляет события через defineEmits и вызывает emit с полезной нагрузкой, а родитель слушает их через v-on. Для двустороннего связывания одного значения v-model это синтаксический сахар над пропсом и событием обновления. Напрямую менять проп нельзя, потому что это ломает однонаправленный поток данных, который делает изменения состояния отслеживаемыми.

5

Что такое Pinia и чем она лучше Vuex?

Ответ

Pinia — официальная библиотека состояния для Vue 3: сторы это обычные функции со state, getters и actions, а мутаций нет вовсе. Она выводит типы TypeScript без ручных аннотаций, по умолчанию поддерживает модульные сторы вместо вложенных модулей и работает и с Options, и с Composition API. Итог — меньше шаблонного кода и намного лучшая поддержка в редакторе, чем у Vuex.

6

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

Ответ

v-if добавляет или удаляет элемент из DOM, поэтому платит за монтирование и размонтирование, но ничего не рендерит при false — подходит для содержимого, которое переключается редко или дорого в отрисовке. v-show всегда рендерит элемент и переключает CSS display, так что переключение дёшево, но компонент создаётся всегда. v-show берут для того, что переключается часто, например выпадающего меню.

🦎

Прочитать ответы недостаточно

На собеседовании ты говоришь вслух под давлением. Кем задаст эти же вопросы, оценит каждый ответ и покажет, что именно подтянуть.

Пройти интервью Senior Vue Frontend →
Бесплатно · 3 интервью в месяц

Другие уровни — Vue Frontend

Junior Vue FrontendMiddle Vue FrontendВсе вопросы Vue Frontend

Другие специализации

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend🟢Senior Node.js Backend⚛️Senior React Frontend🅰️Senior Angular FrontendSenior Next.js