rc-localforage
Version:
rc-localforage 是 localForage 在 React 的封装包,它提供了一种更符合 React 的使用风格(functional component style),同时保持了 localForage 的大部分功能
98 lines (71 loc) • 4.62 kB
Markdown
# rc-localforage
rc-localforage 是 localForage 在 React 的封装包,它提供了一种更符合 React 的使用风格(functional component style),同时保持了 localForage 的大部分功能
> localForage is a fast and simple storage library for JavaScript. localForage improves the offline experience of your web app by using asynchronous storage (IndexedDB or WebSQL) with a simple, localStorage-like API. Learn more about [localForage](https://localforage.github.io/localForage/#data-api-clear).
# how to use rc-localforage
有两种使用 rc-localforage 的方法。 一种是直接使用 rc-localforage 提供的 useLocalForage。 另一种是 `LocalForageProvider` 和 `useLocalForage` 的组合。 [了解配置](#configuration)。
```tsx
import React from 'react';
import { useLocalForage } from 'rc-localforage';
const Component = () => {
const { value, set, remove, loading } = useLocalForage('key');
return (
<div>
<div>{value}</div>
<button onClick={() => set('newValue')}>set value</button>
</div>
);
};
const App = () => {
return (
// Inject localForage instance
<LocalForageProvider
config={{
name: 'myApp',
storeName: 'keyvaluepairs',
}}>
<Component />
</LocalForageProvider>
);
};
```
# configuration
rc-localforage 保持和 localForage 一致的配置,并且进行了扩展
## useLocalForage(key: string, options?: ExtraOptions)
- 单独使用 useLocalForage 时,会使用默认的 localForage 实例,如果需要自定义 localForage 实例,可以配合 LocalForageProvider 一起使用
- 使用 useLocalForage 会返回一个对象,包含 value、set、remove、loading 四个属性
### ExtraOptions
| 参数 | 说明 | 类型 | 默认值 |
| :-------------: | :------------------: | :------------------: | :----: |
| defaultValue | 初始化值 | TState | - |
| target | localForage 配置 | LocalForageOptions | - |
| errorSetHandler | set 方法错误处理函数 | (error: any) => void | - |
| errorGetHandler | get 方法错误处理函数 | (error: any) => void | - |
## LocalForageProvider
在 LocalForageProvider 配置的 config 和 initialValues 会传递给内部的 useLocalForage,并创建 localForage 实例
| 参数 | 说明 | 类型 | 默认值 |
| :-----------: | :--------------: | :--------------------: | :----: |
| config | localForage 配置 | LocalForageOptions | {} |
| initialValues | 初始化值 | { [key: string]: any } | {} |
| children | 子元素 | React.ReactNode | - |
## dropDataStore
删除指定数据存储,没有指定数据存储时,删除默认数据存储
| 参数 | 说明 | 类型 | 默认值 |
| :-----: | :--------------------: | :----------------: | :----: |
| config | 可选 | LocalForageOptions | {} |
| capture | 默认实例捕获处理,可选 | boolean | false |
## removeDataStoreItems
清除数据存储的所有数据,没有指定数据存储时,清除默认数据存储的所有数据。
| 参数 | 说明 | 类型 | 默认值 |
| :-----: | :--------------------: | :----------------: | :----: |
| config | 可选 | LocalForageOptions | {} |
| capture | 默认实例捕获处理,可选 | boolean | false |
# other
## 关于 LocalForageOptions
| 参数 | 说明 | 类型 | 默认值 |
| :---------: | :--------------------: | :----: | :-------------------------------------------------------------------: |
| name | 数据库名称 | string | "localforage" |
| storeName | 数据存储名称(相当于表) | string | "keyvaluepairs" |
| driver | 数据存储驱动 | - | [localforage.INDEXEDDB, localforage.WEBSQL, localforage.LOCALSTORAGE] |
| version | 数据库版本 | number | 1.0 |
| size | 数据库大小 | number | 4980736 |
| description | 数据库描述 | string | "" |