Skip to main content

Що робить Effect?

Effect у NgRx - це слухач дій, який реагує на них і виконує побічні ефекти, наприклад:

  • надсилає HTTP-запит,
  • пише в localStorage,
  • диспатчить нові actions на основі результату.

Він не змінює стан напряму. Він просто "чує" action і робить щось асинхронне.

Приклад:

  1. Користувач натискає "увійти":
ts
this.store.dispatch(login({ email, password }));
  1. Effect "чує" цей action:
ts
login$ = createEffect(() => this.actions$.pipe( ofType(login), switchMap(action => this.authService.login(action.email, action.password).pipe( map(user => loginSuccess({ user })), catchError(() => of(loginFailure())) ) ) ) );
  1. Він викликає authService.login(...), чекає на відповідь і диспатчить loginSuccess або loginFailure.

Що робить Effect:

  • реагує на дії,
  • запускає async-операції (API, таймери, запити),
  • надсилає нові actions із результатами.

Висновок: Effect - це сполучна ланка між actions і зовнішнім світом. Якщо потрібно вийти за межі store, це завжди через нього.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.