Skip to content

函数缓存包装器

相关方法

说明

useFnCacheWrapper 提供了一个函数缓存(Memoization)工具 memoizeWrapper

它可以缓存函数的执行结果,当使用相同的参数再次调用时,直接返回缓存的结果,避免重复计算。支持设置最大缓存数量,防止内存溢出。

类型定义

typescript
function useFnCacheWrapper(): {
  memoizeWrapper: (fn: Function, maxSize?: number) => Function;
};

参数说明

memoizeWrapper

参数类型默认值说明
fnFunction-需要被缓存的原始函数
maxSizenumberInfinity最大缓存条目数。当缓存超过此限制时,最早的缓存函数将被移除

代码示例

typescript
import { useFnCacheWrapper } from '@vue3-simple-bui/platform';

const { memoizeWrapper } = useFnCacheWrapper();

// 模拟一个耗时的计算函数
const heavyCalculation = (a: number, b: number) => {
  console.log('执行计算...');
  return a + b;
};

// 创建带缓存的函数,最多缓存 5 条结果
const cachedCalc = memoizeWrapper(heavyCalculation, 5); 

// 第一次调用,会执行计算
console.log(cachedCalc(1, 2)); // 输出: "执行计算...", 3

// 第二次调用相同参数,直接返回缓存结果
console.log(cachedCalc(1, 2)); // 输出: 3

// 调用不同参数,再次执行计算
console.log(cachedCalc(2, 3)); // 输出: "执行计算...", 5

基于 MIT 许可发布