Каша в голове angular NGRX??

NGRX - это библиотека для управления состоянием приложения в Angular с помощью реактивного подхода.

Часто возникает необходимость управлять состоянием приложения, особенно когда оно становится сложным и состоит из большого количества компонентов. Вместо того чтобы хранить состояние в каждом компоненте и передавать его через входные и выходные параметры, мы можем использовать NGRX для создания единого источника правды для всего приложения.

NGRX основан на паттерне Redux, который был популяризирован в экосистеме React. Основными понятиями в NGRX являются:

1. Store: Хранит состояние всего приложения. Состоит из неизменяемого объекта, который состоит из набора полей. Вся ваша бизнес-логика должна быть организована внутри этого объекта.

2. Actions: Определенный набор действий, которые могут быть переданы внутрь хранилища. Каждое действие имеет тип (строка) и полезную нагрузку (любой объект).

3. Reducers: Функции, которые изменяют состояние хранилища на основе переданного действия. Reducer всегда должен быть чистой функцией, это значит, что входные данные определены, и результат всегда будет одинаковым для одинаковых данных.

4. Selectors: Позволяют получать части состояния из хранилища и использовать их в компонентах. Селекторы могут также комбинироваться, чтобы получать производные данные и предоставлять их компонентам.

NGRX предоставляет мощный инструментарий для управления состоянием приложения в Angular. Он позволяет нам легко отслеживать и обновлять состояние, оптимизировать производительность и упростить разработку сложных приложений. Если вы только начинаете изучать NGRX, рекомендуется прочитать документацию и изучить примеры, чтобы получить полное представление о его возможностях.