useState

useState 组合函数创建了一个响应式且支持 SSR 的共享状态。

用法

// 创建一个响应式状态并设置默认值
const count = useState('counter', () => Math.round(Math.random() * 100))
阅读更多 Docs > Getting Started > State Management.
由于 useState 中的数据将被序列化为 JSON,因此确保其中不包含无法序列化的内容(如类、函数或符号)非常重要。
useState 是一个由编译器转换的保留函数名,因此您不应将自己的函数命名为 useState

使用 shallowRef

如果您不需要状态具有深层响应性,可以将 useStateshallowRef 结合使用。当状态包含大型对象和数组时,这可以提升性能。

const state = useState('my-shallow-state', () => shallowRef({ deep: '非响应式' }))
// isShallow(state) === true

类型

useState<T>(init?: () => T | Ref<T>): Ref<T>
useState<T>(key: string, init?: () => T | Ref<T>): Ref<T>
  • key:一个唯一键,确保跨请求的数据获取能够正确去重。如果您不提供键,将为 useState 实例的文件和行号生成一个唯一的键。
  • init:一个为未初始化的状态提供初始值的函数。此函数也可以返回一个 Ref
  • T:(仅限 TypeScript)指定状态的类型