Насколько велик массив, хранящийся в состоянии с помощью ngrx?

У меня есть массив от 4000 до 5000 объектов, с которыми мне нужно работать на протяжении всего жизненного цикла моего приложения angular. Я использую ngrx для управления состоянием в этом приложении и буду загружать эти данные, используя эффект с оператором startWith. Мне было интересно, насколько велик массив объектов, который можно загружать и хранить в состоянии таким образом.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
670
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете попробовать создать простой тест, используя stackblitz.com (или аналогичный) и посмотреть, какое влияние на производительность оказывают 5000 элементов в магазине Ngrx.

Вы можете издеваться над большим массивом с помощью

Array.from(
  new Array(5000),
  (c, i) => ({ test: `This is test object #${i}` })
)
Ответ принят как подходящий

Это действительно зависит от того, что находится в вашем массиве и что вы планируете с ним делать. Сам массив может содержать множество значений, прежде чем он окажет какое-либо влияние на ваше приложение.

Но если у вас есть массив, содержащий огромное количество значений, вот мой совет:

  • Не отображайте все элементы сразу, либо используйте решения для нумерации страниц или бесконечной прокрутки, которые вы можете найти там (например, в Material CDK есть общий вариант!). Это будет одной из самых больших проблем, с которыми вы можете столкнуться: отображение слишком большого количества элементов в представлении.
  • Если вы знаете, что вам придется искать в массиве, попробуйте создать индекс для вашего поиска, как только вы получите массив, а не каждый раз, когда поиск меняется. Например, если у вас есть множество пользователей, и вы знаете, что в вашем пользовательском интерфейсе есть параметр «Показывать только людей старше 18 лет», вы можете создать Set, содержащий всех этих людей (только ссылки на них).
  • Сохраняйте свои данные неизменными и используйте основные функции Angular: trackBy в своем списке с помощью *ngFor, а также changeDetectionStrategy: ChangeDetectionStrategy.OnPush`

Я уже пытался выяснить, может ли приложение обрабатывать 100 000 элементов, и ответ положительный, хотя иногда оно начало немного переставать отвечать. Таким образом, 4 или 5k должны быть хорошими, если следовать приведенной выше информации.

Другие вопросы по теме