我有一个具有父级、子级和孙级的角垫树。在点击孩子时,我在其中添加孙子。但是孙子拥有高达 4k 记录的大量数据。这使树变得非常缓慢。我的代码如下
<div *ngIf="isGrandChildLoaded"><mat-spinner></mat-spinner></div>
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<!-- This is the tree node template for leaf nodes -->
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding>
<!-- use a disabled button to provide padding for tree leaf -->
<button mat-icon-button disabled></button>
{{node.name}}
</mat-tree-node>
<!-- This is the tree node template for expandable nodes -->
<mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding>
<button mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror" (click)="clickTreeNode(node)">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
{{node.name}}
</mat-tree-node>
</mat-tree>
请注意我在 stackblitz 中尝试过的内容:我的代码
我已经注意到虚拟滚动将是这种情况下的最佳解决方案。我看到了一个例子:参考
但在示例中,它具有virtual-scroll
完整的数据源的整个树级别。
如何一次添加 10 个元素的孙级虚拟滚动。所以它不会冻结 DOM 和 Tree。请指导我...