Питання на співбесіді з React (Senior) з відповідями
75 запитань для співбесіди з теми React (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Чим
cache()з React корисний у Server Components? - 2.Що таке Fiber у React?
- 3.Чим фаза рендеру відрізняється від фази коміту?
- 4.Що дає concurrent-рендеринг користувачеві?
- 5.Що відбувається під час гідратації?
- 6.Який код у рендері типово спричиняє помилку гідратації?
- 7.Що таке selective hydration у React 18+?
- 8.Як працює потоковий SSR (
renderToPipeableStream)? - 9.Чим Server Components відрізняються від клієнтських?
- 10.Що робить директива
'use client'на початку файлу? - 11.Як відрендерити Server Component усередині клієнтського
<Modal>? - 12.Які props не можна передати із Server Component у Client Component?
- 13.Що важливо пам'ятати про функції з
'use server'з погляду безпеки? - 14.Для чого потрібен
useEffectEvent? - 15.Що робить компонент
<Activity mode="hidden">(React 19.2)? - 16.Навіщо
useImperativeHandle? - 17.Що робить цей хук?
- 18.Що таке tearing за concurrent-рендерингу?
- 19.Який зі сценаріїв призводить до витоку пам'яті в React-застосунку?
- 20.Як найточніше знайти, які компоненти гальмують під час взаємодії?
- 21.Чому в
useContextнемає «селекторів» і як це обходять? - 22.Треба відрендерити список зі 100 000 елементів. Що зробити?
- 23.Що станеться з помилкою, кинутою в рендері, якщо над компонентом немає error boundary?
- 24.Чому під час переходу всередині
startTransitionне з'являється fallback уже показаного Suspense? - 25.Що змінилося в
startTransitionу React 19? - 26.Що нового в callback-ref у React 19?
- 27.Як у React 19 задати
<title>і<meta>з компонента без сторонніх бібліотек? - 28.Чи гарантує
useMemo, що обчислення не повториться за тих самих залежностей? - 29.Коли допустимо викликати
setStateпросто під час рендеру? - 30.Коли виправданий
flushSync? - 31.Для чого в Redux Toolkit
createListenerMiddleware? - 32.Як зробити оптимістичне оновлення в RTK Query?
- 33.Яка сигнатура Redux middleware?
- 34.Чому в Redux store не кладуть проміси, екземпляри класів і функції?
- 35.Що таке structural sharing у TanStack Query?
- 36.Як правильно передати дані TanStack Query, завантажені на сервері, у клієнтські компоненти?
- 37.Чому на сервері не можна використовувати один глобальний
QueryClientдля всіх запитів? - 38.Як правильно підтримати скасування запиту в TanStack Query?
- 39.Чим
useSuspenseQueryвідрізняється відuseQuery? - 40.Що обов'язково вказати в
useInfiniteQuery? - 41.Чи потрібен Redux або Zustand, якщо серверні дані вже в TanStack Query?
- 42.Помилка «Invalid hook call». Яка причина найімовірніша за коректного коду компонента?
- 43.Який принцип лежить в основі React Testing Library?
- 44.Що таке headless UI-компоненти й чому їх обирають для дизайн-систем?
- 45.Чим
keyна компоненті-обгортці відрізняється відkeyусередині списку? - 46.Навіщо в React 19 API
preloadіpreinitзreact-dom? - 47.Чому
React.memoз користувацькою функцією порівняння буває небезпечним? - 48.Як React обробляє
setStateу розмонтованому компоненті в React 18+? - 49.Що дає TanStack Query на відміну від завантаження даних у
useEffectзuseState? - 50.У якому разі RTK Query видаляє дані з кешу?
- 51.Чим
prerenderзreact-dom/staticвідрізняється від потокового SSR? - 52.Що надсилається в браузер під час рендера Server Components?
- 53.Чому цей компонент назавжди призупиняється (або нескінченно перезапитує)?
- 54.Що змінює
useDeferredValue(query, "")з початковим значенням (React 19)? - 55.Чого React Compiler вимагає від вашого коду, щоб безпечно його оптимізувати?
- 56.Коли доречний
suppressHydrationWarning? - 57.Що дають опції
onCaughtErrorіonUncaughtErrorуcreateRoot(React 19)? - 58.Чим може зашкодити імпорт однієї іконки з великого barrel-файлу (
index.ts, що реекспортує все)? - 59.Поле введення вгорі великої сторінки змушує всю сторінку перерендерюватися на кожне натискання. Яке рішення найпростіше?
- 60.Чому
<ExpensiveTree />тут не перерендерюється за зміни стануColorPicker? - 61.Що означає попередження в тесті «An update was not wrapped in act(...)»?
- 62.Чому мережеві запити краще мокати через Mock Service Worker (MSW), а не підміняти
fetchу кожному тесті? - 63.Навіщо
useSyncExternalStoreприймає аргументgetServerSnapshot? - 64.Як гарантувати, що модуль із секретами ніколи не потрапить у клієнтський бандл?
- 65.Куди React (17+) навішує свої слухачі подій?
- 66.Що робить
<link rel="stylesheet" href="/chart.css" precedence="default" />усередині компонента в React 19? - 67.Як уникнути водоспаду, коли Server Component потрібні два незалежні запити?
- 68.Як Server Component може почати завантаження, а Client Component - дочекатися його?
- 69.Як дати користувачу повторити спробу після того, як error boundary показав fallback?
- 70.Як юніт-тестувати власний хук?
- 71.Чому зберігати JSX-елементи в стані зазвичай погано?
- 72.Що дає
produceз Immer для оновлень глибоко вкладеного стану? - 73.Чому
onClick={() => select(item.id)}може звести нанівецьmemoу 1000 рядків списку? - 74.Що сталося з
propTypesу функціональних компонентів у React 19? - 75.Чому error boundary досі пишуть класами (або беруть із бібліотеки)?