useState

源文件
useState 可组合项创建一个响应式的、对 SSR 友好的共享状态。

使用

// Create a reactive state and set default value
const count = useState('counter', () => Math.round(Math.random() * 100))
请在文档 > 4 X > 入门 > 状态管理中阅读更多信息。
由于 useState 中的数据将被序列化为 JSON,因此它不能包含任何无法序列化的内容,例如类、函数或符号。
useState 是一个经编译器转换的保留函数名,因此您不应将自己的函数命名为 useState

使用 shallowRef

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

const state = useState('my-shallow-state', () => shallowRef({ deep: 'not reactive' }))
// isShallow(state) === true

类型

签名
export function useState<T> (init?: () => T | Ref<T>): Ref<T>
export function useState<T> (key: string, init?: () => T | Ref<T>): Ref<T>
  • key: 一个唯一的键,确保在请求之间正确地消除数据获取的重复。如果您不提供键,则会为您生成一个对 useState 实例的文件和行号唯一的键。
  • init: 一个函数,在状态未初始化时提供初始值。此函数也可以返回一个 Ref
  • T: (仅限 TypeScript) 指定状态的类型