@ 必需/ 记忆- 1
npm i @essentials/memoize-one
一种只缓存最新一组参数结果的回忆算法,其中通过提供的平等函数确定参数平等.
默认 areEqual 功能是对前四个参数的严格平等检查.
快速启动
import memoOne from '@essentials/memoize-one'
const toUpper = memoOne(
(value) => value.toUpperCase(),
// are equal?
(args, prevArgs) => args[0] === prevArgs[0]
)
toUpper('foo')
// FOO (uncached)
toUpper('foo')
// FOO (cached)
toUpper('foobar')
// FOOBAR (uncached)
toUpper('foo')
// FOO (uncached)
API 密码
memoOne(fn: Function, areEqual?: Function): any
| 参数 | 说明 |
| fn 时 | 您正在记忆的功能 辩论和结果 |
| 正等号 | 平等功能. 返回时 true 如果争吵是平等的, false 如果不是的话. |
自由主义
麻省理工学院
关于 @essentials/memoize-one 的常见问题
@essentials/memoize-one 是什么?
一种只缓存最新一组参数结果的回忆算法,其中通过提供的平等函数确定参数平等.
如何安装 @essentials/memoize-one?
在项目目录运行 npm install @essentials/memoize-one,或使用 pnpm add / yarn add / bun add。
@essentials/memoize-one 支持 TypeScript 吗?
支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。
@essentials/memoize-one 支持 ESM 还是 CommonJS?
同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。
@essentials/memoize-one 可以商用吗?
@essentials/memoize-one 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。
@essentials/memoize-one 的下载量有多少?
根据 npm 官方下载统计,@essentials/memoize-one 在 2026/10/14 – 2026/11/12 这 30 天内被下载 383,699 次,日均约 12,790 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。
@essentials/memoize-one 还在维护吗?
最新版本 1.1.0 发布于 2020/06/05(6 年前);至今共发布 6 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/04/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。