Привязка ng-select [items], получающая параметры слишком много раз

Я изучаю Angular и впервые попробовал использовать NgSelect. И я заметил, что если я использую dropdownValues ​​в качестве [items], он отображается в консоли "dropdownValues" каждый раз, когда указатель мыши находится над любой опцией в select, или каждый раз, когда я открываю и закрываю элемент управления select и т. Д. И просто перемещая указатель Быстрое переключение параметров Я получаю 15-20-процентную нагрузку на процессор, независимо от того, использую ли я _dropdownValues ​​или dropdownValues. Что здесь происходит? Почему NgSelect должен получать [элементы] каждый раз, когда я делаю что-то, что не должно быть причиной для повторного рендеринга или получения [элементов] снова. Что я могу сделать, чтобы оптимизировать мой код, чтобы он не загружал процессор так сильно?

  <ng-select [items]="_dropdownValues" bindValue="value" [(ngModel)]="name"></ng-select>
  <ng-select [items]="dropdownValues" bindValue="value" [(ngModel)]="name"></ng-select>

  @Component({
    selector: 'testcomponent',
    templateUrl: './testcomponent.html'
  })
  export class TestComponent {
    _dropdownValues: DropdownOption[] = [];
    get dropdownValues() {
      console.log("dropdownValues");
      return this._dropdownValues;
    }
    constructor() {
      for (var i = 0; i < 150; i++) {
        this._dropdownValues.push({ value: i.toString(), label: "Test" + i });
      }
    }
  }

  export interface DropdownOption {
    value: string;
    label: string;
  }

0 ответов

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