--- category: Utilities --- # useCached Cache a ref with a custom comparator. ## Usage ```ts import { useCached } from '@vueuse/core' import { shallowRef } from 'vue' interface Data { value: number extra: number } const source = shallowRef({ value: 42, extra: 0 }) const cached = useCached(source, (a, b) => a.value === b.value) source.value = { value: 42, extra: 1, } console.log(cached.value) // { value: 42, extra: 0 } source.value = { value: 43, extra: 1, } console.log(cached.value) // { value: 43, extra: 1 } ``` ## Type Declarations ```ts export interface UseCachedOptions extends ConfigurableDeepRefs, WatchOptions {} export declare function useCached( refValue: Ref, comparator?: (a: T, b: T) => boolean, options?: UseCachedOptions, ): UseCachedReturn export type UseCachedReturn< T = any, D extends boolean = true, > = ShallowOrDeepRef ```