用途:在修改 Vue 应用或生态工具时使用本补丁,尤其涉及 Vue Router、Pinia、Pinia Colada、Nuxt 或 Vite 集成。资料以参考索引形式列出各主题文档:vue-router-5、pinia-3、pinia-colada-queries、pinia-colada-mutations-and-integration、vue-core-and-vapor、ecosystem-tooling。
主要迁移要点:Vue Router 5 已并入原 unplugin-vue-router 功能,需移除该依赖并改为从 vue-router/vite、vue-router/unplugin 导入;移除旧的 unplugin-vue-router/client 类型引用,用 VueRouter({ dts: 'src/routes.d.ts' }) 将生成声明放在 src 下,并在 vueCompilerOptions.plugins 中挂载 vue-router/volar/sfc-typed-router 与 sfc-route-blocks。vue-router/experimental 为 ESM-only,勿从 CommonJS 加载。Pinia 3 要求 TypeScript 4.5 以上,包声明 type: module 但仍提供 CJS 文件,独立 IIFE 构建不再含 Vue Devtools。Pinia Colada 的 useQuery 现只接受单个 options 对象,旧两参数形式已移除,全局默认放在 queryOptions;可用 ast-grep 迁移规则:pnpm --package=@ast-grep/cli dlx ast-grep scan -r node_modules/@pinia/colada/codemods/rules/migration-0-21-to-1-0.yaml -i src。
用法与限制:DataLoaderPlugin 需在 router 前安装以参与首次导航;loader 在组件 setup 之外执行,可并行去重请求并支持 SSR、预取。Pinia Colada 需先注册 Pinia 再注册 Pinia Colada,插件按数组顺序执行;查询键须为可序列化数组,响应式输入须出现在键中。invalidateQueries 默认重取活跃项,传 'all' 含非活跃项;mutate 吞掉错误,mutateAsync 返回可拒绝的 Promise。模板 ref 用 Vue 导出的 TemplateRef。测试建议:用真实 createPinia() 并 flush Promise,异步持久化需先等待缓存恢复再挂载。其他细节参见各参考文档。