← Усі теми

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

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

Пройти цей тест
  1. 1.Що змінюється, коли компонент використовує ChangeDetectionStrategy.OnPush?
  2. 2.Чому OnPush-нащадок не оновлюється після addItem() у батьку?
  3. 3.Коли потрібен ChangeDetectorRef.markForCheck()?
  4. 4.Що означає ExpressionChangedAfterItHasBeenCheckedError?
  5. 5.Чим сигнали покращують change detection порівняно зі звичайними полями?
  6. 6.Як найкраще показати дані з Observable в OnPush-компоненті?
  7. 7.Яку задачу розв'язує linkedSignal?
  8. 8.Що робить untracked() всередині computed або effect?
  9. 9.Як перетворити Observable на сигнал?
  10. 10.Що дає змогу зробити toObservable(sig)?
  11. 11.Що створює model()?
  12. 12.Для чого потрібен transform у входу?
  13. 13.Який оператор підходить для пошуку під час введення, щоб показувався лише результат останнього запиту?
  14. 14.Який оператор має обробляти кнопку «Оплатити», щоб подвійний клік не надіслав дублікати запитів?
  15. 15.Який оператор зберігає суворий порядок кількох запитів збереження, один за одним?
  16. 16.Для чого найкраще підходить mergeMap?
  17. 17.Навіщо в полі пошуку додавати distinctUntilChanged() після debounceTime(300)?
  18. 18.Чим BehaviorSubject відрізняється від Subject?
  19. 19.Чому цей код надсилає два HTTP-запити і як це виправити?
  20. 20.Чому в довгоживучому потоці catchError треба ставити всередині switchMap?
  21. 21.Як у сучасному Angular відписатися від Observable під час знищення компонента?
  22. 22.Що відбувається, коли компонент вказує сервіс у своїх providers?
  23. 23.Навіщо використовувати InjectionToken?
  24. 24.Чим відрізняються useClass, useValue, useFactory і useExisting?
  25. 25.Що робить multi: true у провайдері?
  26. 26.Як впровадити залежність, яка може бути не надана?
  27. 27.Що відбувається, коли лінивий маршрут оголошує providers?
  28. 28.Як ліниво завантажити standalone-компонент для маршруту?
  29. 29.Що повертає функціональний guard, щоб перенаправити користувача?
  30. 30.Чим canMatch відрізняється від canActivate?
  31. 31.Для чого потрібен резолвер?
  32. 32.Що вмикає withComponentInputBinding()?
  33. 33.Як попередити користувача перед виходом зі сторінки з незбереженими змінами?
  34. 34.Чому ngOnInit не викликається знову під час переходу з /users/1 на /users/2?
  35. 35.Як написати власний синхронний валідатор?
  36. 36.Куди під'єднувати валідатор «паролі мають збігатися»?
  37. 37.Як поводяться асинхронні валідатори у формах Angular?
  38. 38.Для чого потрібен FormArray?
  39. 39.Що змінює nonNullable: true у типізованих реактивних формах?
  40. 40.Що дає реалізація ControlValueAccessor?
  41. 41.Як отримати посилання на дочірній елемент чи компонент у класі?
  42. 42.Як зробити кілька іменованих слотів для проєктованого контенту?
  43. 43.Що робить цей блок @defer?
  44. 44.Чим відрізняються чисті й нечисті пайпи?
  45. 45.Який рекомендований спосіб прив'язки до host-елемента компонента?
  46. 46.Що таке атрибутна директива?
  47. 47.Як додати заголовок авторизації до кожного запиту?
  48. 48.Як протестувати сервіс із HttpClient без реальних мережевих запитів?
  49. 49.Навіщо в тесті компонента викликати fixture.detectChanges()?
  50. 50.Як під час міграції на standalone і далі використовувати бібліотеку на NgModule?
  51. 51.Чим forkJoin відрізняється від combineLatest?
  52. 52.Як отримати одне значення з Observable через async/await?
  53. 53.Як повторити невдалий HTTP-запит тричі із затримкою?
  54. 54.Чим ReplaySubject(3) відрізняється від BehaviorSubject?
  55. 55.Що робить оператор scan?
  56. 56.Як одному запиту пропустити функціональний інтерсептор (наприклад, заголовок авторизації)?
  57. 57.Що змінює provideHttpClient(withFetch())?
  58. 58.Як відрендерити той самий фрагмент шаблону в кількох місцях компонента?
  59. 59.Що робить hostDirectives у компоненті чи директиві?
  60. 60.Як виміряти розмір DOM-елемента після рендеру компонента?
  61. 61.Як зареєструвати код очищення із сервісу чи функції без ngOnDestroy?
  62. 62.Як віддати сигнал із сервісу, не дозволяючи компонентам його змінювати?
  63. 63.Як ліниво завантажити групу дочірніх маршрутів?
  64. 64.Як анімувати переходи між маршрутами через браузерний View Transitions API?
  65. 65.Що дозволяє redirectTo у вигляді функції?
  66. 66.Як задати InjectionToken значення за замовчуванням без додавання провайдерів?
  67. 67.Як створити компонент динамічно й задати йому inputs?
  68. 68.Який тест-ранер за замовчуванням використовують нові проєкти Angular CLI починаючи з v21?
  69. 69.Як протестувати OnPush-компонент після зміни сигнального input?
  70. 70.Що змінює toSignal(obs$, { initialValue: [] }) порівняно з toSignal(obs$)?
  71. 71.Чим rxResource (або resource) кращий за ручну підписку в effect?
  72. 72.Чому варто уникати subscribe у компоненті лише заради копіювання значень у поля?
  73. 73.Для чого потрібен @defer (on viewport; prefetch on idle)?
  74. 74.Як передати шаблон від батька, щоб налаштувати, як дочірній компонент рендерить кожен елемент?
  75. 75.Як відрендерити список із 10 000 рядків, не створюючи 10 000 DOM-вузлів?