函数缓存包装器
相关方法
说明
useFnCacheWrapper 提供了一个函数缓存(Memoization)工具 memoizeWrapper。
它可以缓存函数的执行结果,当使用相同的参数再次调用时,直接返回缓存的结果,避免重复计算。支持设置最大缓存数量,防止内存溢出。
类型定义
typescript
function useFnCacheWrapper(): {
memoizeWrapper: (fn: Function, maxSize?: number) => Function;
};参数说明
memoizeWrapper
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
fn | Function | - | 需要被缓存的原始函数 |
maxSize | number | Infinity | 最大缓存条目数。当缓存超过此限制时,最早的缓存函数将被移除 |
代码示例
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