Я новичок в Angular / NgRx, и у меня возникают проблемы с пониманием взаимосвязи между функциями NgRx и модулями Angular.У меня есть конкретный вариант использования, но я думаю, что этот вопрос может помочь другим в следовании некоторым рекомендациям при моделировании сценариев реальных приложений.
Я хочу смоделировать следующее:
У меня естьколлекция блоков в моей БД, каждый из которых может содержать N элементов, которые связаны друг с другом графически.Каждый предмет связан только с тем, что находится внутри его коробки.Пользователи могут взаимодействовать с ящиками по следующим 3 маршрутам:
/boxes
=> отображает все ящики, принадлежащие пользователю, пользователь может добавлять или удалять ящики /boxes/:id
=> отображает конкретное поле и то, что внутри.Пользователи могут видеть только график элементов внутри поля /boxes/:id/edit
=> авторизованные пользователи могут редактировать содержимое поля, добавляя, удаляя, редактируя элементы и соединения между ними (чтобы они могли редактироватьграфик предметов).Они также могут удалить блок и обновить некоторые свойства блока (вес, размер и т. Д.)
Я хотел бы разделить эти маршруты в 2 лениво загруженных угловых модуля, один со списком блоков.(1) и одно с действиями в виде одного блока (2, 3), поскольку режим редактирования графика очень тяжелый, и я не хочу загружать все компоненты графика и анимации, когда пользователь переходит на страницу списка блоков.
Вопросы:
- как мне моделировать хранилища ngrx в моем приложении, если некоторые действия над блоком выполняются как в (1), так и (2,3)?Например: я могу обновить ящик как из списка ящиков, так и из деталей ящика (в списке я могу создать новый, присвоив ему имя, на странице / edit я могу изменить его имя).В каком модуле должно храниться состояние ящика?Если я сохраню его на странице списка, когда я изменю свойства со страницы редактирования, я должен обновить магазин в другом модуле (это даже возможно / правильно?).Если я сохраню его на страницах с подробностями, как я могу отобразить свойства ящиков при отображении списка?
- , что если я захочу разделить (2) и (3) на 2 разных ленивых загруженных модуля, потому что я вижу редактированиечасть слишком тяжелая для загрузки, когда пользователь просто хочет взглянуть на коробку?Должен ли я дублировать свой магазин и иметь одинаковое состояние и редукторы только с разными действиями в 2 модулях?Должен ли я поделиться магазином?Как?Как насчет моих компонентов?Конечно, будет много компонентов, которые нужно разделить только между этими двумя модулями.Должен ли я создать общий модуль, который не является «основным» общим модулем, который предлагает документация Angular?