Возможно ли повторное использование NGRX Store и Effects из другого модуля? - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время мы проводим рефакторинг приложения Angular в моей команде и внедряем библиотеку NGRX (Store, Effects ...).Мы немного знакомы с шаблоном Redux и у нас есть много повторно используемых компонентов.

Например, у нас есть основной модуль для Projects, который содержит компонент контейнера, а затем он показывает только список проектов ипанель множественного выбора внизу.В этом компоненте вы можете Delete, Download и выполнять еще 3 или 4 действия с каждым проектом в списке.Кроме того, вы можете выбрать 2 или более проектов и выполнять те же действия, что и массовые операции.

Проблема, с которой я столкнулся, заключается в том, что до того, как мы начали рефакторинг приложения, мы используем этот компонент еще в двух основных модулях смаленькая разницаВ основном модуле Projects мы отображаем все проекты, в другом модуле мы повторно используем тот же компонент для отображения всех проектов, отфильтрованных по parent id, а в другом модуле мы используем тот же компонент для отображения всех проектов, отфильтрованных по ancestor id.

Во всех этих компонентах состояние будет одинаковым (список projects и список selected projects).Действия, которые вы можете выполнять с проектами, также одинаковы.

Итак, на данный момент, как лучше всего справиться с возможностью повторного использования этих компонентов?Я подумал о повторном использовании интерфейса Store из основного модуля, а затем переписать все эффекты и редуктор ... Но если мне нужно будет внести изменения в любой из Effects или Reducer, мне придетсяредактировать три файла каждый раз ... Какой самый лучший подход здесь?Спасибо!

...