Яких питань з React очікувати на співбесіді

Автор: Aaron Cao · Оновлено

Яких питань з React очікувати на співбесіді
Спершу очікуйте питання про hooks: useState, залежності useEffect і stale closure. Потім рендеринг: reconciliation, чому key у списках мають значення, і контроль re-render за допомогою memo, useMemo та useCallback. У більшості раундів додають практичне завдання наживо, зазвичай список із fetch і фільтрацією або поле пошуку з debounce.

Спершу очікуйте питання про hooks: useState, залежності useEffect і stale closure. Потім рендеринг: reconciliation, чому key у списках мають значення, і контроль re-render за допомогою memo, useMemo та useCallback. У більшості раундів додають практичне завдання наживо, зазвичай список із fetch і фільтрацією або поле пошуку з debounce.

Які концепції React запитують найчастіше?

Площа React величезна, і списки питань трактують кожен закуток як однаково ймовірний. Це не так. Цей розділ охоплює концепції, які справді вирішують результат більшості раундів, тож ви можете практикуватися відповідно до реального розподілу. Домінують чотири групи:

  • Механіка hooks: правила hooks, що входить у масив залежностей useEffect, функції cleanup, і баг stale closure, коли effect або callback бачить старе значення state.
  • Рендеринг: що запускає re-render, як reconciliation порівнює дерева, і чому стабільні key мають значення у списках.
  • Проєктування state: підняття state, controlled проти uncontrolled input, і коли context підходить краще за зовнішній store.
  • Продуктивність: React.memo, useMemo, useCallback, і коли кожен із них — це шум, а не допомога.

Інтерв'юери досліджують причину за кожним пунктом. Продекламувати, що key мають бути унікальними, не дає жодних балів; пояснити, що React робить із key під час зміни порядку списку, дає.

Які завдання з live coding варто очікувати?

Більшість раундів з React включають створення невеликого компонента наживо. Повторювані завдання стабільні незалежно від компанії:

  • Отримайте список через API, відрендеріть його і додайте текстовий фільтр.
  • Додайте debounce до поля пошуку і скасовуйте застарілі запити.
  • Створіть форму з валідацією і controlled input.
  • Напишіть лічильник або таймер, який коректно прибирає за своїм effect.
  • Виокремте власний hook із логіки, що повторюється.

Наприклад, front-end інженер, який проходить співбесіду на продуктову роль рівня middle, може створити список із fetch і фільтрацією, а потім отримати додаткові запитання про стани завантаження, стани помилок і те, що відбувається, коли компонент демонтується посеред запиту. Саме на цих розширеннях вигравають раунди; базове завдання — лише мінімальна планка.

Відпрацювання цього під тиском часу з уточнювальними питаннями і робить це автоматичним; сторінка mock interview описує проведення таймованих сесій, де інтерв'юер продовжує тиснути.

Як виглядають питання з React рівня senior?

Співбесіди рівня senior зміщуються від механіки до оцінних суджень. Очікуйте питання про архітектуру state: що живе у state компонента, що належить store, чим server state відрізняється від UI state, і де міститься caching. Питання про продуктивність рендерингу стають конкретними: пошук джерела повільної взаємодії, вибір між memoization і реструктуризацією, і читання flame graph із профайлера.

Server-side rendering і hydration з'являються там, де команда запускає фреймворк поверх React: що таке hydration, чому виникають розбіжності (mismatch), і що дає перенесення роботи на сервер. Питання про тестування зосереджені на стратегії, що ви тестуєте на рівні компонента проти end to end, більше, ніж на API конкретної бібліотеки.

Формати співбесід і те, як front-end раунд зазвичай складає ці етапи, описані в interview types hub.

Як практикуватися, щоб це спрацювало на справжній співбесіді?

Перегляд туторіалів формує впізнавання, а не пригадування, а співбесіда перевіряє саме пригадування під наглядом. Рішення — повторення в реальній формі раунду: створюйте стандартні завдання з порожнього файлу, промовляйте вголос під час набору тексту і відповідайте на переривання, не втрачаючи нитку думки. Набори питань для суміжних стеків, зокрема основи звичайного JavaScript, з яких раунди з React досі часто починаються, зібрані в question banks hub.

Одне чесне зауваження: співбесіди з React майже завжди проходять у спільному редакторі або з видимим екраном, і все на цьому екрані видно інтерв'юеру. Асистенту місце під час підготовки й практики, а не в самому раунді зі спільним екраном. Для законного використання наживо оверлей SubcueAI залишається локальним на вашому пристрої, і жоден бот не приєднується до дзвінка; налаштування для практичних сесій описані на сторінці tutorial.

Часті запитання

Чи все ще потрібно знати class-компоненти?

На рівні розуміння — так. Чимало продакшн-коду досі використовує class, тож очікуйте щонайбільше питання про методи життєвого циклу і те, як вони відображаються на hooks. Питання про новий код ставлять у контексті function-компонентів майже всюди.

Наскільки глибокими насправді бувають питання про hooks?

Глибшими за сигнатури. Інтерв'юери запитують, навіщо існує масив залежностей, що таке stale closure і як його виправити, коли запускається cleanup, і чому оновлення state групуються (batch). Одна історія про налагодження stale closure цінніша, ніж завчена напам'ять кожна вбудована hook.

Чи входять питання про Next.js у співбесіди з React?

Якщо команда використовує Next.js — так: routing, отримання даних на сервері й основи hydration. Команди на звичайному React рідко цього вимагають, а базові питання про React все одно вирішують результат раунду.

Чи досі запитують про Redux на співбесідах?

Радше як обговорення управління state, ніж вікторину з API. Очікуйте порівняння component state, context і зовнішнього store, а також обґрунтування, коли кожен варіант підходить. Правильно назвати компроміси важливіше, ніж знання конкретної бібліотеки.

Схожі запитання

← Докладніше: Питання для співбесід за роллю та темою