Angular 大列表性能优化

本文探讨了在Angular应用中优化大型数据列表的方法,包括使用虚拟滚动条、手动呈现和逐步呈现。虚拟滚动条通过Angular CDK提高性能,但可能不适合复杂组件;手动呈现通过直接调用Angular API减少加载时间;逐步呈现则按需逐步加载列表项,降低初始渲染压力。
摘要由CSDN通过智能技术生成

无题

引言

今天看到一篇文章,有关在Angular应用程序中,如何优化大列表的方法。当数据列表变得很大时,很多Web应用程序都会出现性能问题,作者认为这通常不是框架本身的问题,即框架是框架,代码不是好代码。很多呈现数据的代码没有很好地斟酌,导致了性能问题。下面来看具体的优化方案。

方法一:使用虚拟滚动条(Virtual Scrolling)

虚拟滚动条是Angular CDK实现的一个组件,它可以用来比较高效地呈现数据量大的列表。虚拟滚动的原理是,将列表的容器的高度设置为所有将要呈现数据项的总高度,但是只呈现在当前视图内的一部分数据。我们从这里的例子可以看到,随着滚动条滚动,列表容器中呈现的列表项在不断变化,但是右侧的滚动条并不改变,只是改变了当前容器视图中的项目,并不是真的滚动。

<cdk-virtual-scroll-viewport itemSize="10000">       
 <div *cdkVirtualFor="let item of items">
   {
  { item }}
 </div>
</cdk-virtual-scroll-viewport>

当然,虚拟滚动也有一些缺陷。比如,被隐藏的列表项并没有呈现,因此是不可搜索的,因为这里的“不可见”是指项目元素根本不在页面上,而不仅仅是CSS样式上的不可见。另一个缺陷是,这个虚拟滚动条的实现十分依赖于你项目的特定实现,你的组件实现如果很复杂,可能虚拟滚动条就不能正常工作了。另外,引入这个Angular CDK库,也会增加项目代码包的大小。

方法二:手动呈现

所谓“自动”呈现,是指用Angular提供的原生Directive *ngFor 来实现,而“手动”方式,则是直接调用Angular的API去呈现。比如用ngFor的实现如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值