← Усі теми

Питання на співбесіді з React (Senior) з відповідями

75 запитань для співбесіди з теми React (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

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