@ 大商业/memoize
这个库可用于纪念纯函数的结果.
不同于默认 memoize 函数由Lodash提供,它可以被应用到接受多个非主参数的函数上. 它也可以被配置为在经过一定数量的独特调用后结束其缓存. 默认情况下,它可以浅析地比较基于对象的参数;但是它可以被配置来严格或深刻地比较参数,这取决于您的用法要求.
安装
您可以使用 无。 。 。 .
npm install --save @bigcommerce/memoize
使用量
要记住一个函数:
function fn(a, b) {
return { a, b };
}
const memoizedFn = memoize(fn);
const result = memoizedFn({ message: 'hello' }, { message: 'world' });
const result2 = memoizedFn({ message: 'hello' }, { message: 'world' });
expect(result).toBe(result2);
要设定缓存大小限制 :
function fn(a, b) {
return { a, b };
}
const memoizedFn = memoize(fn, { maxSize: 1 });
const result = memoizedFn({ message: 'hello' }, { message: 'world' });
// This call will expire the cache of the previous call because it is called with a different set of arguments
const result2 = memoizedFn({ message: 'hello' }, { message: 'foobar' });
const result3 = memoizedFn({ message: 'hello' }, { message: 'world' });
expect(result3).not.toBe(result);
将缓存大小设置为一个的方便方法:
const memoizedFn = memoizeOne(fn);
使用不同的参数比较函数:
const memoizedFn = memoize(fn, {
isEqual: (a, b) => a === b,
});
捐款
要释放:
npm run release
查看其它可用的命令 :
npm run
许可证
麻省理工学院