我正在使用Angular / Material Autocomplete。在将数据加载到自动完成功能时,会遇到严重的性能问题,例如渲染大约需要30秒,并且要花10秒钟才能变得稳定,因此需要从服务器加载数据,并且从服务器接收的数据非常快。还有其他人遇到问题吗?如果是,您如何解决该问题。
html
<mat-form-field>
<input placeholder="Pick one" aria-label="Number" matInput [matAutocomplete]="auto">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let option of options" [value]="option" class="autocomplete-item">
{{option}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
TS
export class AppComponent implements OnInit {
options = [];
ngOnInit() {
for (let i = 0; i < 10000; i++) {
this.options.push(i + '-sdfsdff');
}
}
}
答案 0 :(得分:1)
我不确定mat-autocomplete
支持多少选项,但是我对提高性能的建议是:
答案 1 :(得分:0)
我认为核心问题是您正在使用viewChild引用viewPort,但是有多个视口。 html中的“自动完成”设置在设置方面存在类似问题。
下面的StackBlitz似乎正在工作。我认为,即使屏幕上只有一个自动完成功能,您的操作方式还是可以的。
https://stackblitz.com/edit/angular-rzqjz8?file=src%2Fapp%2Fapp.component.ts