Skip to content

createGlobalState

创建全局状态,在多个组件间共享响应式数据。

函数签名

typescript
function createGlobalState<T>(
  stateFactory: () => T
): () => T

参数

参数名类型必填说明
stateFactory() => T状态工厂函数,返回初始状态

返回值

类型说明
() => T返回一个函数,调用后获取全局状态(所有组件获取的是同一个状态实例)

工作原理

  1. 使用闭包保存全局状态实例
  2. 首次调用时:
    • 执行 stateFactory() 创建状态
    • 保存到闭包变量中
  3. 后续调用:
    • 直接返回已创建的状态实例
  4. 所有组件共享同一个状态对象

示例

typescript
const useGlobalCount = createGlobalState(() => {
  const count = ref(0)
  const increment = () => count.value++
  return { count, increment }
})

// 组件 A
const { count, increment } = useGlobalCount()

// 组件 B
const { count } = useGlobalCount()  // 获取相同的 count

适用于简单的全局状态管理,无需引入 Vuex 或 Pinia。