用途:该技能面向在 Vue 应用中使用 @tanstack/vue-store 的代码编写,它是 TanStack Store(框架无关、类型安全的状态库)的 Vue 适配层,版本 0.11.1,精确依赖 @tanstack/store@0.11.1,核心 API 由该包统一再导出,Vue 应用无需单独安装核心包。
主要能力:提供 useSelector(主要读取 hook,支持 store、atom 或任意 { get, subscribe } 源)、useAtom(单个可写 atom 的读写元组)、_useStore(实验性读写元组)与已废弃的 useStore(useSelector 别名)。核心侧可创建 createStore、派生 store、createAtom、只读计算 atom、createAsyncAtom,以及 batch、flush、shallow、toObserver 等工具;类型覆盖 Store、Atom、Observer、Subscription 等。
使用方式:在模块作用域创建 store 后于组件内调用 hook,例如 useSelector(counter, (s) => s.count),对象切片可传 { compare: shallow };write 通过 store.setState、atom.set 或 useAtom 的第二个返回值完成;多个更新可用 batch(() => { ... }) 合并。
限制与注意:hook 须在组件 setup 或其他 effect scope 内调用,否则 onScopeDispose 清理不会执行;默认比较为严格 ===,选择器返回新对象或数组时必须传 shallow;返回的 ref 为只读;选择器在每次通知时执行,应保持轻量。useStore 已废弃,勿导入 createStoreContext(0.11.1 源码未导出)。环境要求 Vue ^3.0.0 或经 vue-demi 的 ^2.5.0,Vue 2 需可选 peer @vue/composition-api@^1.2.1,测试覆盖 TypeScript 5.6–5.9。