Skip to content

createSharedComposable

将 composable 转换为共享版本,在同一组件树中只创建一次实例。

函数签名

typescript
function createSharedComposable<T extends (...args: any[]) => any>(
  composable: T
): T

参数

参数名类型必填说明
composableFunction要共享的 composable 函数

返回值

类型说明
T共享版本的 composable

工作原理

  1. 使用 effectScope 创建独立作用域
  2. 首次调用时:
    • 在作用域中执行原 composable
    • 保存返回值
  3. 后续调用:
    • 直接返回保存的结果
  4. 组件卸载时自动清理

与 createGlobalState 的区别

  • createGlobalState:全局单例,跨所有组件树
  • createSharedComposable:组件树内单例,不同组件树有不同实例

适用于需要在组件树内共享,但不同应用实例隔离的场景。