createSharedComposable
将 composable 转换为共享版本,在同一组件树中只创建一次实例。
函数签名
typescript
function createSharedComposable<T extends (...args: any[]) => any>(
composable: T
): T参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
composable | Function | 是 | 要共享的 composable 函数 |
返回值
| 类型 | 说明 |
|---|---|
T | 共享版本的 composable |
工作原理
- 使用
effectScope创建独立作用域 - 首次调用时:
- 在作用域中执行原 composable
- 保存返回值
- 后续调用:
- 直接返回保存的结果
- 组件卸载时自动清理
与 createGlobalState 的区别:
- createGlobalState:全局单例,跨所有组件树
- createSharedComposable:组件树内单例,不同组件树有不同实例
适用于需要在组件树内共享,但不同应用实例隔离的场景。