[Angular] Using Pipe for function memoization
Angular for Using Function pipe
2023-09-14 08:59:14 时间
Sometimes we might have some expensive function to calcuate state directly from template:
<div class="chip"> {{ calculate (item.num)}} </div>
calculate(num: number) { return fibonacci(num); }
The ´calculate´ function is a pure function, we can use memoization to imporve the profermance. Angualr pure Pipe is good match for that:
// calculate.pipe.ts import { Pipe, PipeTransform } from '@angular/core'; const fibonacci = (num: number): number => { if (num === 1 || num === 2) { return 1; } return fibonacci(num - 1) + fibonacci(num - 2); }; @Pipe({ name: 'calculate' }) export class CalculatePipe implements PipeTransform { transform(num: number): any { return fibonacci(num); } }
<div class="chip"> {{ item.num | calculate }} </div>
If we call 'calcualate' with the same params, it will return the cached value.
相关文章
- Java基础笔记 – 增强的for循环For each循环 自动装箱拆箱 可变参数
- [Angular] Standalone component - routes top level provide share for all child routes
- [Docker] Running Multiple Containers for an Angular, Node project
- [Angular] Implementing A General Communication Mechanism For Directive Interaction
- [Angular] Using InjectionToken
- [Angular 2] Using ng-model for two-way binding
- [Angular 2] Using ng-for to repeat template elements
- [Angular 2] Using ng-model for two-way binding
- [AngularJS] Using the LocalForage library for offline storage with Angular
- [Angular] The $any() type cast function
- [Angular] ngx-formly (AKA angular-formly for Angular latest version)
- [Angular] Create a custom validator for template driven forms in Angular
- [Angular2 Form] Build Select Dropdowns for Angular 2 Forms
- [Angular 2] Using ng-model for two-way binding
- [Angular 2] Using ng-for to repeat template elements
- [Angular 2] Using ng-model for two-way binding
- [Angular] Service facotry(), custom filter
- Angular 项目里 angular.json 文件内容的学习笔记
- Angular 依赖注入错误消息:ERROR Error NullInjectorError No provider for XX
- 关于 Angular 应用的入口
- Angular 不同种类 Module 的介绍
- Angular jasmine单元测试框架里describe的实现原理
- Angular的_zone.onMicrotaskEmpty最终会通过changeDetect重新刷新视图