跳到主要内容

useCached

分类
导出大小
199 B
上次更改
8 个月前

使用自定义比较器缓存一个 ref。

演示

值: 42
额外: 0
缓存值: 42
缓存额外: 0

用法

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 }

类型声明

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
>

来源

源代码演示文档

贡献者

Anthony Fu
Anthony Fu
NoiseFan
IlyaL
Robin
IlyaL
sun0day
lvjiaxuan
王文路

更新日志

v12.8.2
3f5da - fix(types): 错误的导入路径
v12.8.0
9afee - feat: 添加 options.deepRefs (#4591)
0a9ed - feat!: 放弃对 Vue 2 的支持,优化打包并清理 (#4349)

根据 MIT 许可证发布。