Javascript 如何以正确/更快的方式呈现大数据列表

Javascript 如何以正确/更快的方式呈现大数据列表,javascript,angular,angular8,Javascript,Angular,Angular8,我有一个很长的数据列表。我正在渲染它,如下所示。它需要大约4秒钟来显示组件,我希望它立即显示。有什么办法可以做到这一点吗?我已经尝试过了,但无法让组件渲染得更快 {{stat.text}} {{stat.text}} 使用虚拟滚动: 仅通过在屏幕上呈现适合的项目来高效地显示大型元素列表 例如: HTML:- <cdk-virtual-scroll-viewport itemSize="50" class="example-viewport"> <div *cdkVir

我有一个很长的数据列表。我正在渲染它,如下所示。它需要大约4秒钟来显示组件,我希望它立即显示。有什么办法可以做到这一点吗?我已经尝试过了,但无法让组件渲染得更快


{{stat.text}}

{{stat.text}}

使用虚拟滚动:

仅通过在屏幕上呈现适合的项目来高效地显示大型元素列表

例如:

HTML:-

<cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
  <div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>
.example-viewport {
  height: 200px;
  width: 200px;
  border: 1px solid black;
}

.example-item {
  height: 50px;
}
import {ChangeDetectionStrategy, Component} from '@angular/core';

/** @title Basic virtual scroll */
@Component({
  selector: 'cdk-virtual-scroll-overview-example',
  styleUrls: ['cdk-virtual-scroll-overview-example.css'],
  templateUrl: 'cdk-virtual-scroll-overview-example.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CdkVirtualScrollOverviewExample {
  items = Array.from({length: 100000}).map((_, i) => `Item #${i}`);
}
TS:-

<cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
  <div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>
.example-viewport {
  height: 200px;
  width: 200px;
  border: 1px solid black;
}

.example-item {
  height: 50px;
}
import {ChangeDetectionStrategy, Component} from '@angular/core';

/** @title Basic virtual scroll */
@Component({
  selector: 'cdk-virtual-scroll-overview-example',
  styleUrls: ['cdk-virtual-scroll-overview-example.css'],
  templateUrl: 'cdk-virtual-scroll-overview-example.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CdkVirtualScrollOverviewExample {
  items = Array.from({length: 100000}).map((_, i) => `Item #${i}`);
}

这里有一个链接供您参考:-

我们需要更多信息:数据来自哪里?组件的生命周期挂钩中有什么?我现在实际上正在使用模拟数据。这是链接。我正在导入数据并将其分配到构造函数中
<cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
  <div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>
.example-viewport {
  height: 200px;
  width: 200px;
  border: 1px solid black;
}

.example-item {
  height: 50px;
}
import {ChangeDetectionStrategy, Component} from '@angular/core';

/** @title Basic virtual scroll */
@Component({
  selector: 'cdk-virtual-scroll-overview-example',
  styleUrls: ['cdk-virtual-scroll-overview-example.css'],
  templateUrl: 'cdk-virtual-scroll-overview-example.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CdkVirtualScrollOverviewExample {
  items = Array.from({length: 100000}).map((_, i) => `Item #${i}`);
}