NgRx хранилище для списков и подробных объектов данных - PullRequest
0 голосов
/ 27 октября 2018

Я очень новичок в NgRx и пытаюсь обернуть голову вокруг него.Я понимаю, что цель состоит в том, чтобы иметь хранилище данных, в котором находятся различные типы состояний.Я пытаюсь понять, как работать со списками данных.

Сценарий 1 : пользователь сначала переходит к списку, и в этом случае запускается эффект для получения списка из бэкэнда / API.В случае успеха список сохраняется в хранилище, а компонент пользовательского интерфейса отвечает на наблюдаемое через | async и отображает список.Пользователь нажимает на элемент, чтобы просмотреть детали.Мы можем сохранить идентификатор выбранного элемента в хранилище, а затем просто использовать механизм фильтрации для извлечения подробных данных из массива списка в хранилище.Или мы можем сделать еще один эффект вызова сервера для получения подробной информации.Я предполагаю, что решение здесь заключается в том, если список содержит все данные, необходимые для страницы сведений?

Сценарий 2 : если список в магазине содержит все необходимые данныеесли страница сведений и пользователь щелкают элемент в списке, он просто сохраняет идентификатор выбранного элемента в хранилище, а затем переходит на страницу сведений, где данные подробностей просто отфильтровываются из списка на основе идентификатора выбранного элемента в магазине, что происходиткогда пользователь обновляет URL-адрес браузера на странице сведений?Когда это происходит, список больше не находится в магазине и не является идентификатором выбранного элемента.Тем не менее, идентификатор выбранного элемента находится в URL-адресе и маршруте.Как вы справляетесь с этим сценарием?Перестраиваете ли вы список, чтобы получить подробную запись?

Сценарий 3 : каков наилучший подход для обработки сценария, в котором у вас есть разные подмножества данных из всего списка.Возможно, вам нужно просмотреть список «ожидающих» товаров, а также другой список товаров, созданных на этой неделе, и т. Д. Кажется очень неэффективным загружать все записи в хранилище в качестве основного списка, а затем просто отфильтровывать нужные записи.для разных взглядов.Я прочитал учебники, в которых у вас есть главный список в магазине, а затем просто есть идентификаторы в другой части магазина, которые составляют различные срезы.Это кажется очень тяжелым и дублирование базы данных на клиенте.Как лучше всего фильтровать списки в магазине?

Спасибо за вашу помощь и понимание.

1 Ответ

0 голосов
/ 27 октября 2018

Сценарий 1: Вы на месте!

Сценарий 2: Это зависит.

  • Вы можете сохранить данные в localStorage, например,
  • список должен быть получен через бэкэнд API

Сценарий 3: ключевым моментом здесь является поддержание вашего состояния в норме (вы будете работать с идентификаторами). Также нам не нужно загружать все объекты одновременно, это можно сделать частично. В документах Redx есть раздел производительности, который вы можете прочитать.

...