Middle
Why is NgRx needed in an Angular application?
sobes.tech AI
Answer from AI
NgRx is a library for state management in Angular applications, based on the Redux pattern. It helps to centrally store the application's state, which simplifies its predictability, debugging, and testing.
Main advantages of NgRx:
- Single source of truth: all state is stored in one store object.
- Immutability: state is not changed directly but updated through pure reducer functions.
- Change tracking: thanks to event streams (actions), it is easy to understand what and when changed.
- Integration with Angular: uses RxJS for reactive programming, which works well with Angular.
Example of using NgRx:
// action
export const increment = createAction('[Counter] Increment');
// reducer
const counterReducer = createReducer(0,
on(increment, state => state + 1)
);
// component
this.store.dispatch(increment());
this.store.select('counter').subscribe(value => console.log(value));