useCloudStorage
小程序数据存储器。
提供一个类似 useState
的接口存储, 通过一个指定的 key 来读写数据,多次设值数据会间隔 500ms 发送一次给协同者, key-value 键值对会被持久化的存储。
当 value 变化的时候,会触发重新渲染,value 的变化可能来自于其他的协作者。
Type parameters
Name | Description |
---|---|
S | 默认值 |
参数
Name | Type | Description |
---|---|---|
key | string | 存储时的 key 值 |
initValue? | S | () => S | 初始默认值, 可以传入值或者函数,原理与 useState 参数相同 |
返回值
[S
, Dispatch
<SetStateAction
<S
>>, boolean
]
分别为 [返回值,设置值方法、是否有权限写入]
示例
import { useCloudStorage } from '@apitable/widget-sdk';
// 一个简单的计数器
function Counter() {
const [counter, setCounter, editable] = useCloudStorage('counter', 0);
return (
<div>
Counter: {counter}
<Button size="small" disable={!editable} onClick={() => setCounter(counter + 1)}>+</Button>
<Button size="small" disable={!editable} onClick={() => setCounter(counter - 1)}>-</Button>
</div>
);
}