提升 Angular 应用性能技巧
2020-06-22
以下是我在项目中实际使用到的优化方法,更多详情,请移步本文末尾 参考链接
ChangeDetectionStrategy.OnPush 策略:只有我的命令,让你刷新你才刷新 💗
1 | ({ |
Subscription 记得及时取消订阅/销毁
特别的,目前 Angular 中发送 HTTP 请求都是使用的 HttpClient
,该对象实例的 post
和 get
方法默认返回 Observable<any>
,这就是个坑,它不会自动销毁,在请求完成之后。我的解决办法是,在 HttpClient.post
方法之后,重新 pipe
一个 take(1)
。
1 | export class BaseService { |
ngFor 指令添加 trackBy
目的是让 Angular 刷新组件部分刷新,而不是全部。
不要在表达式中调用方法,包括 getter
使用组件的属性,它不香吗,既能缓存结果,提高页面渲染性能,又能规范书写,将业务处理规则放 js/ts 端,显示规则放页面端。
使用纯管道 (pure pipe)
上一点提到,使用组件的属性缓存结果,能够提高页面渲染性能。相应的,Angular 官方推荐使用 pure pipe。
缓存 💗
能缓存的地方,都缓存,包括但不限于 HTTP 请求、静态资源、JS Object 等。
性能差的组件,可以考虑用原生 HTML 控件实现 💗
有时候,打麻雀,一把 98K 就够了,没必要用大炮,你说呢 (好像还是大材小用了😄)。
其他常规页面优化方法 💗
参考链接:
- 15 Angular Performance Tips & Tricks
- Best practices for a clean and performant Angular application
- Memory Management - JavaScript | MDN
- Performance - Mozilla | MDN
- mgechev/angular-performance-checklist - GitHub
本文链接:
content_copy https://zxs66.github.io/2020/06/22/improve-Angular-application-performance/