Skip to content
On this page

useLocalStorageState

将状态存储在 localStorage 中的 Hook 。

代码演示

基础用法

高级用法-存储复杂类型

API

如果想从 localStorage 中删除这条数据,可以使用 setState()setState(undefined)

interface Options<T> {
  defaultValue?: T | (() => T);
  serializer?: (value: T) => string;
  deserializer?: (value: string) => T;
}
const [state, setState] = useLocalStorageState<T>(
  key: string,
  options: Options<T>
): [T?, (value?: T | ((previousState: T) => T)) => void];
interface Options<T> {
  defaultValue?: T | (() => T);
  serializer?: (value: T) => string;
  deserializer?: (value: string) => T;
}
const [state, setState] = useLocalStorageState<T>(
  key: string,
  options: Options<T>
): [T?, (value?: T | ((previousState: T) => T)) => void];

Options

参数说明类型默认值
defaultValue默认值any | (() => any)-
serializer自定义序列化方法(value: any) => stringJSON.stringify
deserializer自定义反序列化方法(value: string) => anyJSON.parse

Result

参数说明类型
state本地 Storage 值Ref<any | undefined>
setState设置 Storage 值SetState

注意

useLocalStorageState 在往 localStorage 写入数据前,会先调用一次 serializer,在读取数据之后,会先调用一次 deserializer

Source

源码文档示例