Skip to content

useCached ​

类别
导出大小
195 B
最近修改
4 weeks ago

使用自定义比较器缓存引用。

🌐 Cache a ref with a custom comparator.

比较器的签名是 (newSourceValue, cachedValue) => boolean。 当它返回 true 时,缓存保持不变。当它返回 false 时,缓存会更新为新的源值。

🌐 The comparator signature is (newSourceValue, cachedValue) => boolean. When it returns true, the cache is kept as-is. When it returns false, the cache is updated to the new source value.

示例 ​

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
, (
newSourceValue
,
cachedValue
) =>
newSourceValue
.
value
===
cachedValue
.
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,
  (newSourceValue, cachedValue) => newSourceValue.value === cachedValue.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 }