useMemoize

一个 React 钩子,其返回一个函数,该函数对值进行缓存(对于相同的参数返回相同的缓存值)。

演示

尝试多次点击以获取数据,您将看到第一次获取将实际获取数据,但其余的将返回缓存值。

源码

用法

请查看 API。

源码

点击下方链接跳转 GitHub 查看源代码。

API

const cachedFn = useMemoize(fnToBeCached, options)

被缓存函数 FnToBeCached

将要被缓存的函数。

选项 Options

export type UseMemoizeCache<Key, Value> = { get: (key: Key) => Value | undefined set: (key: Key, value: Value) => void has: (key: Key) => boolean delete: (key: Key) => void clear(): void } export type UseMemoizeOptions<Result, Args extends unknown[]> = { /** * 自定义缓存键生成器 * * @defaultValue JSON.stringify(args) */ getKey?: (...args: Args) => string | number /** * 自定义缓存,可以是 Map 或其他实现了缓存接口的对象 * * @defaultValue new Map() */ cache?: UseMemoizeCache<CacheKey, Result> }

返回值

export type UseMemoizeReturns<Result, Args extends unknown[]> = { /** * 记忆化函数 */ (...args: Args): Result /** * 加载数据并用新值替换缓存 */ load: (...args: Args) => Result /** * 通过参数删除缓存 */ delete: (...args: Args) => void /** * 清除所有缓存 */ clear(): void /** * 通过参数获取缓存键 */ getKey: (...args: Args) => CacheKey /** * 类似于 Map 的缓存对象,您可以直接操作缓存 */ cache: UseMemoizeCache<CacheKey, Result> }