当一个选项卡中的数据很大时,mat-tab 组件会滞后。我们怎样才能解决这个问题?
mat-tab component is lagging when data inside one tab is huge. How can we solve that?
我在 angular 10 中使用 mat-tab,组件使用 ComponentFactoryResolver 动态渲染,并使用此方法将组件推送到数组中。
for ex:
componentArr.push(this.insertComponent(ProfileComponent));
componentArr.push(this.insertComponent(DataComponent));
componentArr.push(this.insertComponent(PaymentComponent));
private insertComponent<T>(component: any): T {
const componentFactory = this.componentFactoryResolver.resolveComponentFactory<T>(component);
return this.tabHost.viewContainerRef.createComponent<T>(componentFactory).instance;
}
现在我有一个包含非常大数据的组件,它在切换选项卡时使 mat-tab 延迟。
我应该尝试哪种不同的方法?
分享我解决这个问题后的方法。在我的例子中,我有很多 HTML 数据导致 Mat-tab.
出现滞后问题
为了解决这个问题,我将数据分成几个部分并使用 mat-expansion-panel 并且默认情况下保持所有部分折叠,因此 mat-tab 组件的 HTML 减少了,当我展开时一个特定的部分,只会显示所需的 HTML。
注意:mat-expansion-panel 默认设置内部内容的 属性 为 'display: none' 这不会从 [=35= 中删除 html ].而是在单击扩展面板时有条件地添加 html。
我在 angular 中使用 'ngIF' 是为了不在 DOM 中包含 html。
我在 angular 10 中使用 mat-tab,组件使用 ComponentFactoryResolver 动态渲染,并使用此方法将组件推送到数组中。
for ex:
componentArr.push(this.insertComponent(ProfileComponent));
componentArr.push(this.insertComponent(DataComponent));
componentArr.push(this.insertComponent(PaymentComponent));
private insertComponent<T>(component: any): T {
const componentFactory = this.componentFactoryResolver.resolveComponentFactory<T>(component);
return this.tabHost.viewContainerRef.createComponent<T>(componentFactory).instance;
}
现在我有一个包含非常大数据的组件,它在切换选项卡时使 mat-tab 延迟。
我应该尝试哪种不同的方法?
分享我解决这个问题后的方法。在我的例子中,我有很多 HTML 数据导致 Mat-tab.
出现滞后问题为了解决这个问题,我将数据分成几个部分并使用 mat-expansion-panel 并且默认情况下保持所有部分折叠,因此 mat-tab 组件的 HTML 减少了,当我展开时一个特定的部分,只会显示所需的 HTML。
注意:mat-expansion-panel 默认设置内部内容的 属性 为 'display: none' 这不会从 [=35= 中删除 html ].而是在单击扩展面板时有条件地添加 html。
我在 angular 中使用 'ngIF' 是为了不在 DOM 中包含 html。