用途:面向编写、调试或重构导入 pinia(Vue 3 状态管理库)的代码,覆盖 pinia 4.x 的选项式与设置式 store、state、getters、actions、订阅、插件、SSR 与测试等。
主要能力:定义 store 有选项式(state/getters/actions)与设置式(ref 为 state、computed 为 getter、函数为 action)两种语法;id 为唯一字符串。使用 store 时调用 useStore(),可用 storeToRefs() 解构 state 与 getter 以保持响应性。$patch 支持对象或同步函数形式;$reset() 仅选项式 store 有,设置式需自行实现;$state 赋值实际调用 $patch。
必要用法:要求 Vue ^3.5.11;v3 起不支持 Vue 2。@vue/devtools-api ^8.1.5 为必需 peer,需一并安装:npm install pinia @vue/devtools-api。TypeScript >=5.6.0 为可选 peer。包为 ESM-only("type": "module",单一导出),v4 移除 CJS 解析。@pinia/nuxt 1.x 与 @pinia/testing 2.x 为 pinia 4 配套版本。服务端使用需传入 pinia 实例:useStore(pinia),避免跨请求状态污染。
版本说明:v4.0.0 仅技术性破坏,含 ESM-only、devtools-api 升 v8 且必装、错误与开发警告改用 Nostics 诊断(PINIA_R1001 至 PINIA_R1007)、piniaSymbol 纳入公共导出等。v3.0.0 起移除 defineStore 纯对象签名、移除 PiniaStorePlugin、放弃 Vue 2 支持。
适用场景与限制:适用于 Vue 3 项目状态管理、SSR、测试与插件扩展。限制包括仅支持 Vue 3、ESM-only、设置式 store 无内置 $reset、新增 state 键不具响应性、函数式 $patch 必须同步。其余未在资料中说明的内容暂未提供。