Как оптимизировать производительность приложения Angular 9 и реактивных форм - PullRequest
0 голосов
/ 26 мая 2020

Работаю на большом предприятии Angular СПА в организации. Проблема в том, что в полях ввода реактивных форм при вводе ввода поля управления формой заполняются очень медленно, например, для заполнения пользовательского интерфейса требуется 5-6 секунд, даже в среде prod.

Что касается используются реактивные формы, обычно есть одна группа форм для каждой страницы, нет вложенных групп форм и не так много элементов управления формой в группе форм макс 10-12. На странице есть дочерние компоненты, но обычно 1-2 компонента на странице.

Я выделил изменения значений в элементе управления формой, чтобы при вызове входного значения вызывались только указанные c изменения значения элемента управления формой изменения. Команда дала мне задачу найти решение, я попробовал следующие методы -

  • used updateOn: 'blur'

  • used debounce (400) и independentUntilChanged () Функции NgRx для полей ввода, так что valueChanges не вызывается при каждом вводе.

  • отписался от каждой подписки в блоке ngOnDestroy.

  • попробовал ChangedetectionStrategy на Onpu sh, но дочерние компоненты не загружаются, поэтому я не реализовал этот метод.

  • удалил ненужный импорт на страницах, поэтому приложение не стать тяжелым.

  • Отдельное значение Изменяет для одного элемента управления формой.

  • Как можно меньше кода в блоке ngOnint.

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

Есть ли какое-то другое решение, или плагин, или что-то, что я делаю неправильно, или кто-то еще столкнулся с похожая ситуация и как их преодолели. Или то же самое с большим СПА в Angular? Не могу вставить сюда исходный код из соображений политики.

1 Ответ

0 голосов
/ 29 мая 2020

У вас много данных загружено в этот элемент управления? Или, может быть, вы просто предоставите, например, текст, например, возраст 21? : D

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