createGlobalState
创建全局状态,在多个组件间共享响应式数据。
函数签名
typescript
function createGlobalState<T>(
stateFactory: () => T
): () => T参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
stateFactory | () => T | 是 | 状态工厂函数,返回初始状态 |
返回值
| 类型 | 说明 |
|---|---|
() => T | 返回一个函数,调用后获取全局状态(所有组件获取的是同一个状态实例) |
工作原理
- 使用闭包保存全局状态实例
- 首次调用时:
- 执行 stateFactory() 创建状态
- 保存到闭包变量中
- 后续调用:
- 直接返回已创建的状态实例
- 所有组件共享同一个状态对象
示例:
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。