Питання на співбесіді з Vue (Senior) з відповідями
75 запитань для співбесіди з теми Vue (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Як Vue 3 відстежує реактивні залежності?
- 2.Чому
reactive(obj) === objхибне і чим це важливо? - 3.Коли варто використовувати
markRawдля значення в реактивному стані? - 4.Чому 100 змін стану в одному обробнику дають лише один перерендер?
- 5.Для чого потрібен
effectScope? - 6.Що відбувається з Vue 3.4, коли computed перераховується в те саме значення?
- 7.Що не так, якщо хук життєвого циклу реєструється після
awaitу звичайній функціїsetup()? - 8.Як зробити один спільний стан composable для всіх компонентів, що його використовують?
- 9.Що робить віртуальний DOM Vue «поінформованим компілятором»?
- 10.Чому у Vue шаблони зазвичай кращі за рукописні render-функції?
- 11.Що ламається, коли
v-forвикористовує індекс якkey, а елементи вставляються на початок? - 12.Як можна навмисно використати зміну
keyу компонента? - 13.Що робить
v-memo? - 14.Чому передавання
activeIdкожному елементу може сповільнити великі списки? - 15.Як ефективно відрендерити список із 10 000 рядків?
- 16.Чому обгортати великі дані API в
reactive/refможе бути дорого й яка альтернатива? - 17.Як зменшити початковий бандл великого Vue SPA?
- 18.Чого немає в runtime-only збірці Vue і чому вона за замовчуванням із Vite?
- 19.Чому
<KeepAlive>безmaxзагрожує зростанням пам'яті? - 20.Що таке cross-request state pollution у Vue SSR?
- 21.Що часто спричиняє hydration mismatch у Vue SSR?
- 22.Що дає лінива гідратація у Vue 3.5?
- 23.Навіщо використовувати
useId()(3.5+) для атрибутівid/aria-*? - 24.Які хуки життєвого циклу виконуються під час SSR?
- 25.Чому багато команд використовують Nuxt замість саморобного Vue SSR?
- 26.Як стан Pinia передається із сервера на клієнт?
- 27.Чому небезпечно монтувати Vue на відрендерений сервером HTML, що містить контент користувачів?
- 28.Чи безпечно прив'язувати URL від користувача до
:hrefу Vue? - 29.Чим ризикована прив'язка значень від користувача до
:style? - 30.Коли синглтон-composable на рівні модуля достатній замість Pinia?
- 31.Як добре організувати велику кодову базу на Vue?
- 32.Які патерни Vue 2 треба замінити під час міграції на Vue 3?
- 33.Як перевести велику кодову базу з Options API на Composition API?
- 34.Як надати компонент Vue як нативний Custom Element?
- 35.Що дає глобальний
app.config.errorHandler, чого немає вonErrorCaptured? - 36.Як написати узагальнений компонент (наприклад, типізований select)?
- 37.Що додає
defineSlots? - 38.Як типізувати template ref на дочірній компонент?
- 39.Як реалізувати доступ за ролями через meta маршрутів?
- 40.Як відновлювати позицію прокручування, коли користувач повертається назад?
- 41.Коли викликають
router.addRoute()? - 42.Як guards справляються з асинхронною роботою на кшталт завантаження прав?
- 43.Що може плагін Pinia?
- 44.Чим
$subscribeвідрізняється відwatchна стані стора? - 45.Чому setup-стори мають повертати весь стан?
- 46.Як протестувати composable, що використовує хуки життєвого циклу чи
inject? - 47.Як протестувати компонент, що використовує Vue Router?
- 48.Який головний компроміс між компонентними й end-to-end тестами?
- 49.Коли варто писати render-функцію через
h()? - 50.Що дає змогу зробити
createRendererз@vue/runtime-core? - 51.Що дає аргумент
previousу геттері computed (Vue 3.4+)? - 52.Що робить
deep: 2у watcher'а (Vue 3.5+)? - 53.Як типізувати глобальну властивість на кшталт
$t, додану черезapp.config.globalProperties? - 54.Як стримити SSR-HTML клієнту, не чекаючи на всю сторінку?
- 55.Що робить
data-allow-mismatch(Vue 3.5+)? - 56.Для чого потрібен
onServerPrefetch? - 57.Чому Nuxt застерігає від прямого виклику
$fetchу<script setup>для даних сторінки? - 58.Чому для спільного стану варто використовувати
useStateз Nuxt, а неrefрівня модуля? - 59.Коли
router.beforeResolve- правильне місце для перевірки? - 60.Як сучасно перенаправити чи скасувати навігацію в гарді Vue Router 4?
- 61.Як поєднати переходи маршрутів і
<KeepAlive>з<RouterView>? - 62.Для чого в Pinia потрібен
skipHydrate? - 63.Навіщо додавати
acceptHMRUpdateу файли Pinia-сторів? - 64.Яку проблему розв'язує
<Teleport defer>(Vue 3.5+)? - 65.Що робить повернення
falseзonErrorCaptured? - 66.Як мокати виклики API в тестах компонентів, не підміняючи
fetchу кожному тесті? - 67.Як зібрати бібліотеку Vue-компонентів на Vite, не включаючи в бандл сам Vue?
- 68.Як типізувати складний проп в Options API?
- 69.Чому глобальний
app.provide()часто кращий заglobalPropertiesдля сервісів рівня застосунку? - 70.Як обробляється вміст
<Teleport>під час SSR? - 71.Чому
reactive-масив із 50 000 об'єктів може сповільнювати фільтрацію і що допомагає? - 72.Як використати початкове значення пропа як локальний редагований стан без попереджень?
- 73.Як мікрофронтенди на Module Federation ділять один рантайм Vue?
- 74.Коли компонент з
async setup()потребує особливої уваги в тестах? - 75.Яка безпечна стратегія міграції з Vuex на Pinia у великому застосунку?