Огромное количество действий / эффектов для конкретной сущности - PullRequest
1 голос
/ 12 мая 2019

Как угловое приложение, я работаю над подходами среднего и большого размера, поэтому число действий и, следовательно, эффектов растет.Как обращаться с растущими файлами действий / эффектов для конкретной сущности.

Я пытался разделить действия на несколько файлов, но проблема с перечислениями Typescript заключается в том, что они не могут быть объединены.Каков наилучший подход здесь?Одна из моих идей заключалась в том, чтобы иметь выделенный файл enum, действия, разделенные в файлах в соответствии с частью приложения, которое они охватывают, а затем файл индекса для всех тех действий, в которых они объединены в один тип.

Тот же вопрос относительно эффектов.Поскольку это один @Injectable класс, возможно ли разделить действия в разных файлах, а затем «объединить» их в один большой класс для этой конкретной сущности

1 Ответ

2 голосов
/ 12 мая 2019

NgRx 8, в настоящее время в бета-версии, предлагает решение этой проблемы:

  • createAction: создание действий с помощью одной функции
const increment = createAction('increment', props<{amount: number}>())
  • createReducer: создание редукторов в виде карты объектов
const reducer = createReducer(
  {value: 0}, //initial state
  on(increment, (state, action) => { value: state.value + action.amount }
)
  • @ngrx/data: расширение, которое предлагает простое введение в NgRx за счет упрощения управления данными сущностей при одновременном уменьшении объема явности.

Больше информации на next.ngrx.io

...