Должен ли я отделить одни и те же коллекции сущностей для двух компонентов? - PullRequest
1 голос
/ 23 апреля 2020

Я сталкиваюсь со следующей проблемой на работе:

В SPA, в которой я работаю, у меня есть объект задачи и функция панели мониторинга. Также я планирую использовать ngrx store & entity для управления состоянием в приложении. Функция панели инструментов разделена на компоненты, называемые расписанием и таблицей.

Расписание показывает уже назначенные задачи за определенный промежуток времени для определенных ресурсов. Таблица разбита на страницы и может содержать задачи, уже показанные по расписанию. Таким образом, эти два компонента могут отображать объединенное подмножество набора задач.

Кроме того, они будут иметь общее состояние (выбор) и функции (перетаскивание из сетки в расписание). Более того, мы говорим о тысячах задач в общей сложности, на странице сетки может быть до 1000 задач, в расписании иногда может быть до нескольких сотен задач.

Надеюсь, я дал несколько в контексте моих вопросов: должны ли задачи храниться в одной коллекции (обработанной ngrx-entity), чтобы избежать избыточности? Или должны быть отдельные коллекции для каждого компонента? Если должна быть одна коллекция, как подойти к удалению ненужной задачи из этой коллекции, чтобы избежать загрузки всех сущностей в состояние?

1 Ответ

1 голос
/ 23 апреля 2020

и ngrx, и flux предназначены для избежания избыточности, и если вам нужна одна и та же сущность в 2 компонентах - тогда вы должны получить одну и ту же сущность, а не ее копию откуда-то, как вторая коллекция.

Поскольку вам нужны разные наборы сущностей для разных компонентов, вам необходимо рассмотреть реализацию наборов / списков в вашем магазине. Например, чтобы иметь 2 дополнительные переменные в состоянии, которые хранят массив идентификаторов для каждого компонента. Во-первых, вы выбираете идентификаторы, а во-вторых, вы выбираете сущности. Это поможет вам поддерживать согласованность данных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...