跳到主要内容

useIDBKeyval

分类
导出大小
525 B
@vueuse/integrations
上次更改
4 个月前

idb-keyval 的封装。

演示

可在 @vueuse/integrations 插件中使用。

将 idb-keyval 作为对等依赖安装

bash
npm install idb-keyval@^6

用法

ts
import { 
useIDBKeyval
} from '@vueuse/integrations/useIDBKeyval'
// bind object const {
data
:
storedObject
,
isFinished
} =
useIDBKeyval
('my-idb-keyval-store', {
hello
: 'hi',
greeting
: 'Hello' })
// update object
storedObject
.
value
.
hello
= 'hola'
// bind boolean const
flag
=
useIDBKeyval
('my-flag', true) // returns Ref<boolean>
// bind number const
count
=
useIDBKeyval
('my-count', 0) // returns Ref<number>
// awaiting IDB transaction await
count
.
set
(10)
console
.
log
('IDB transaction finished!')
// delete data from idb storage
storedObject
.
value
= null

类型声明

ts
interface 
Serializer
<
T
> {
read
: (
raw
: unknown) =>
T
write
: (
value
:
T
) => unknown
} export interface
UseIDBOptions
<
T
> extends ConfigurableFlush {
/** * Watch for deep changes * * @default true */
deep
?: boolean
/** * On error callback * * Default log error to `console.error` */
onError
?: (
error
: unknown) => void
/** * Use shallow ref as reference * * @default false */
shallow
?: boolean
/** * Write the default value to the storage when it does not exist * * @default true */
writeDefaults
?: boolean
/** * Custom data serialization */
serializer
?:
Serializer
<
T
>
} export interface
UseIDBKeyvalReturn
<
T
> {
data
:
RemovableRef
<
T
>
isFinished
:
ShallowRef
<boolean>
set
: (
value
:
T
) =>
Promise
<void>
} /** * * @param key * @param initialValue * @param options */ export declare function
useIDBKeyval
<
T
>(
key
:
IDBValidKey
,
initialValue
:
MaybeRefOrGetter
<
T
>,
options
?:
UseIDBOptions
<
T
>,
):
UseIDBKeyvalReturn
<
T
>

来源

源代码演示文档

贡献者

Anthony Fu
IlyaL
Anthony Fu
NoiseFan
IlyaL
Matthew
Robin
OrbisK
Fernando Fernández
Oleksandr Hyriavets
Doctorwu
Abdallah Alhaddad
Jimmy Sullivan
sun0day
Harmony Scarlet

更新日志

v13.6.0
bb831 - feat: 添加 options.serializer (#4781)
v12.8.0
7432f - feat(types): 废弃 MaybeRefMaybeRefOrGetter,转而使用 Vue 的原生类型 (#4636)
v12.3.0
59f75 - feat(toValue): 废弃 @vueuse/shared 中的 toValue,转而使用 Vue 的原生函数
0a9ed - feat!: 放弃对 Vue 2 的支持,优化打包并清理 (#4349)
v10.9.0
1b67d - fix: 使用 toRaw 而不是覆盖原始对象 (#3805)
v10.8.0
a086e - fix: 更严格的类型
v10.4.0
77a86 - feat(useIdbKeyval): 能够等待 IDB 写入 (#3338)

根据 MIT 许可证发布。