我在我的项目中使用角度材质,我使用Mat-Table为每个表渲染1000个产品/行.当表格改为分页(我们使用后端分页)到1000行时,性能变得非常慢,我甚至无法在文本框中写入.
我试图调试问题,所以我把日志放在一个列模板上,这样我就可以看到渲染是如何工作的.
即使我将鼠标悬停在表格标题上,我也看到它会重新呈现所有行.是否有可能将变更检测控制为ChangeDetectionStrategy.OnPush
我的组件中有一个下表,
<table [dataSource]="(searchResults$ | async)?.accounts" mat-table matSort multiTemplateDataRows>
<ng-container matColumnDef="Code">
<th *matHeaderCellDef mat-header-cell mat-sort-header> Account Code</th>
<td *matCellDef="let account" mat-cell> {{account.code}} </td>
</ng-container>
</table>
Run Code Online (Sandbox Code Playgroud)
我在列定义和表级别保留了 mat-sort 指令。https://material.angular.io/components/table/examples
中提供的所有示例- 列出了从 TS 文件设置而不是可观察流时的数据源。