Во-первых, чтобы ответить на ваш вопрос, вы должны знать, что государственное управление не является термином Angular, и вам не нужно его использовать.Управление состоянием - это шаблон для реализации принципа CQRS , и я цитирую Википедию:
В нем говорится, что каждый метод должен быть либо командой, выполняющей действие, либо запросом, которыйвозвращает данные вызывающей стороне, но не обоим.
Управление состояниями выступает в качестве единственного источника правды для вашего приложения.
Вы можете создать приложение без управления состоянием.Вы можете использовать только услуги, и вы готовы идти.Добавление State Management к вашему приложению добавило бы некоторую сложность и шаблон, но тогда у вас будут преимущества (цитируется https://stackoverflow.com/a/8820998/1860540):
- Большая команда - Выесли вы выбрали архитектуру CQRS, вы можете легко разделить задачи разработки между людьми. Ваши лучшие люди могут работать над логикой домена, оставляя обычные вещи менее опытным разработчикам.
- Сложная бизнес-логика - CQRS заставляет васизбегайте смешивания логики домена и инфраструктурных операций.
- Масштабируемость имеет значение - С CQRS вы можете добиться высокой производительности чтения и записи, обработка команд может быть масштабирована на нескольких узлах, а запросы доступны только для чтения.операции, которые можно оптимизировать для выполнения операций быстрого чтения.
Наиболее популярными библиотеками Angular State Management являются NGRX и NGXS .
Я не буду подробно останавливаться на NGRX, но вкратце - он зарекомендовал себя в реальных производственных приложениях.
Hoтем не менее, NGXS является более молодой библиотекой управления состоянием для angular, которая приняла некоторые идеи NGRX и «расширила возможности» ее с помощью инструментов, предоставляемых Angular (таких как DI).Основное различие между NGRX и NGXS в том, что ваш шаблон значительно меньше на NGXS.Если вам интересно, вы можете прочитать основную причину Почему другое управление состояниями для Angular .
Итак, подведем итоги - если вы планируете создать крупномасштабное приложение, тогдавам следует рассмотреть возможность использования State Management, хотя - вам не нужно.