Actions¶
В NgRx действия описывают все события Angular приложения, которые влияют на его состояние, поскольку изменить состояние можно только через отправку хранилищу одного из действий.
NgRx Actions создаются с помощью классов, которые реализуют стандартный интерфейс Action.
1 2 3 4 5 6 7 8 9 10 | |
Тип должен быть константой типа string, поэтому Action имеет единственное обязательное свойство type, которое должно быть строкой. Общепринято называть действие в формате [Category name] Event name. В квадратных скобках указывается категория действия, а после них — событие, вызвавшее его. Под категорией здесь подразумевается группа объединенных чем-то общим событий, например, если все они вызываются на странице просмотра новости, то категорию можно назвать [News Page].
Для инициирования обработки NgRx Actions хранилищем, используется метод хранилища dispatch().
1 2 | |
Практически всегда для изменения состояния вам необходимо будет вместе с действием передавать какие-либо данные. Реализуется это в момент создания класса действия. Общепринято помещать внутри класса переданные извне данные в свойство payload.
1 2 3 4 5 6 7 | |
В последнем примере передается id пользователя, которого необходимо удалить.
Для структурирования кода и легкости дальнейшего масштабирования вашего приложения, описывайте все действия в виде перечислений и создавайте смешанные типы действий.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Смешанный тип необходим для краткости записи типа в редюсере, который обрабатывает взаимосвязанную группу действий.
1 | |