zoukankan      html  css  js  c++  java
  • [Angular] Using Pipe for function memoization

    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.

  • 相关阅读:
    hibernate的核心配置
    hibernate的映射配置
    数据库的维护
    索引
    数据库规范化设计
    数据控制DCL
    触发器
    SQL存储过程简介
    Transact-SQL简介
    sysdatabaes表与sysobjects表
  • 原文地址:https://www.cnblogs.com/Answer1215/p/11446963.html
Copyright © 2011-2022 走看看