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 |
|