Питання на співбесіді з Vue (Middle) з відповідями
75 запитань для співбесіди з теми Vue (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Чому цей спостерігач не спрацьовує?
- 2.Чим
watchEffectвідрізняється відwatch? - 3.Як скасувати застарілий запит, коли
id, за яким спостерігають, швидко змінюється (Vue 3.5+)? - 4.Що робить
{ deep: true }у спостерігача? - 5.Коли
shallowRefкращий заref? - 6.Що робить
toRefs? - 7.Що таке записуваний computed?
- 8.Чому мутувати стан всередині гетера computed - помилка?
- 9.Як зробити, щоб колбек
watchодразу виконався й з поточним значенням? - 10.Коли виконується спостерігач із
flush: 'post'? - 11.Що дають модифікатори
defineModel? - 12.Як застосувати fallthrough-атрибути до внутрішнього елемента, а не до кореня?
- 13.Що таке scoped slot?
- 14.Як зберегти наданий стан реактивним, але заборонити нащадкам його мутувати?
- 15.Навіщо використовувати символ
InjectionKeyзамість рядка дляprovide/inject? - 16.Що робить
defineAsyncComponent? - 17.Що робить
defineExposeу<script setup>? - 18.Що дає реактивна деструктуризація props із 3.5?
- 19.Як типізувати події компонента в TypeScript?
- 20.Що таке composable?
- 21.Які проблеми міксинів розв'язують composables?
- 22.Як composable має приймати аргументи, які можуть бути ref'ами, гетерами чи звичайними значеннями?
- 23.Чому composables треба викликати синхронно в
<script setup>, а не в колбеку? - 24.Що відбувається, коли в
<script setup>єawaitверхнього рівня? - 25.Як написати локальну власну директиву в
<script setup>? - 26.Що таке плагін Vue?
- 27.Що робить
<KeepAlive>? - 28.Навіщо рендерити модальне вікно через
<Teleport to="body">? - 29.Як
<Transition name="fade">анімує елемент? - 30.Яку проблему тут розв'язує
nextTick? - 31.Як ліниво завантажити компонент маршруту?
- 32.Як захистити маршрути, що потребують авторизації?
- 33.Чому сторінка не оновлюється під час переходу з
/users/1на/users/2? - 34.Що робить
props: trueу визначенні маршруту? - 35.Чому в продакшені з
createWebHistoryперезавантаження/aboutдає 404? - 36.Чим відрізняються
router.pushіrouter.replace? - 37.Як рендеряться вкладені маршрути?
- 38.Чому деструктуризація стора Pinia втрачає реактивність і як це виправити?
- 39.Чим відрізняються setup-стори й option-стори в Pinia?
- 40.Що дає
store.$patch? - 41.Чи можуть дії Pinia бути асинхронними?
- 42.Як використати стор поза компонентом, наприклад у guard'і роутера?
- 43.Чому цей гетер Pinia не кешується?
- 44.Як один стор Pinia може використовувати інший?
- 45.Як зі scoped-стилів стилізувати елемент всередині дочірнього компонента?
- 46.Що робить
v-bind()всередині<style>? - 47.Як перехоплювати помилки з компонентів-нащадків?
- 48.Навіщо
await'ити дії користувача у Vue Test Utils? - 49.Як протестувати компонент, що використовує стори Pinia?
- 50.Який інструмент перевіряє типи у файлах
.vue, зокрема шаблони, у CI? - 51.Як анімувати додавання, видалення й переставлення елементів списку?
- 52.Чому локальний імпорт кращий за глобальну реєстрацію через
app.component()? - 53.Як задати опції компонента на кшталт
inheritAttrs: falseу<script setup>? - 54.Як відстежувати кілька джерел одним колбеком?
- 55.Що робить
{ once: true }у watcher'а (Vue 3.4+)? - 56.Як зупинити watcher до розмонтування компонента?
- 57.Як створити ref, що оновлюється з дебаунсом?
- 58.Ви мутуєте масив усередині
shallowRef. Чому представлення не оновлюється і як це виправити? - 59.Що
<Suspense>робить із компонентом, у якого top-levelawaitу<script setup>? - 60.Як попередити користувача перед виходом із маршруту з незбереженими змінами?
- 61.Які є два поширені способи завантажити дані для маршруту?
- 62.Як зберігати фільтри в query URL і реагувати на їхні зміни?
- 63.Що таке іменовані представлення у Vue Router?
- 64.Чим
aliasмаршруту відрізняється відredirect? - 65.Як дізнатися, чи відбулася навігація після
router.push()? - 66.Чи є в setup-стора
$reset(), як в option-стора? - 67.Як логувати кожну дію Pinia-стора та її помилки?
- 68.Що дає VueUse?
- 69.Який вигляд мають CSS Modules у SFC?
- 70.Як стилізувати вміст слота, переданий батьком, зі scoped-стилів компонента?
- 71.Коли корисний
shallowMountу Vue Test Utils? - 72.Навіщо в тесті компонента
await flushPromises()після кліку по кнопці, що викликає API? - 73.Що має відбуватися з фокусом після клієнтської навігації в SPA заради доступності?
- 74.Як запустити збирання Vite з налаштуваннями з
.env.staging? - 75.Чому продакшен-збірки мають використовувати production-режим Vue?