Skip to content

useCached

Category
Export Size
199 B
Last Changed
6 months ago

Cache a ref with a custom comparator.

Demo

Value: 42
Extra: 0
Cached Value: 42
Cached Extra: 0

Usage

ts
import { 
useCached
} from '@vueuse/core'
import {
shallowRef
} from 'vue'
interface Data {
value
: number
extra
: number
} const
source
=
shallowRef
<Data>({
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 }
js
import { useCached } from '@vueuse/core'
import { shallowRef } from 'vue'
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
<
D
extends boolean = true>
extends ConfigurableDeepRefs<
D
>,
WatchOptions {} export declare function
useCached
<
T
,
D
extends boolean = true>(
refValue
:
Ref
<
T
>,
comparator
?: (
a
:
T
,
b
:
T
) => boolean,
options
?:
UseCachedOptions
<
D
>,
):
UseCachedReturn
<
T
,
D
>
export type
UseCachedReturn
<
T
= any,
D
extends boolean = true,
> =
ShallowOrDeepRef
<
T
,
D
>

Source

SourceDemoDocs

Contributors

Anthony Fu
Anthony Fu
IlyaL
Robin
IlyaL
sun0day
lvjiaxuan
Wenlu Wang

Changelog

v12.8.2 on
3f5da - fix(types): wrong import path
v12.8.0 on
9afee - feat: add options.deepRefs (#4591)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)

Released under the MIT License.

FREE WEEKEND
48 Hours of Unlimited Official Vue.js Certification Training
Reserve Your Spot
23-24 August