CodeBuddy 这款智能工具在处理 Pinia 和 Vuex 的状态管理代码时,展现出了显著的自动化能力。它并非替代开发者做架构决策,而是将那些重复性高、容易出错、需要在多个文件之间同步的繁琐环节自动化掉。关键在于,它能深入理解你项目的实际结构与已有代码,并非凭空猜测。

简单来说,CodeBuddy 能够帮你高效生成并维护状态管理代码,大幅减少重复劳动。然而,它的智能判断完全基于对你项目结构的准确理解。
Pinia store 自动生成
这部分功能非常适合新模块的快速起步,尤其当你已经拥有 API 接口定义,或者组件里明确使用了哪些字段时,效果最为明显。
- 首先,请确保项目基于 Vue 3 + TypeScript,并且已安装
pinia和@pinia/core依赖。 - 然后,在 VS Code 里右键点击
stores/目录,选择“CodeBuddy: Generate New Store”选项。 - 输入 store 的名称,例如
cart,并根据需要选择是否启用本地持久化(购物车等场景推荐开启)。 - 生成的
cart.store.ts会自动包含标准的defineStore结构、根据项目类型推断的state形状、带有async/await和try-catch模板的 actions,以及基础的 getters。
Vuex module 反向推导
这一功能对于老项目迁移或补全缺失的 store 模块来说相当实用。它从现有组件的调用代码出发,能有效避免手动拼写 action 名称时出错。
- 在 Vue 2 组件里,选中一段包含多个
this.$store.dispatch('user/login', {...})调用的代码。 - 按下
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入“CodeBuddy: Infer Vuex Module from Selection”命令。 - 它会自动提取 action 名称(如
user/login)、payload 字段(如username,password)、默认命名空间前缀(如USER_),并生成对应的user.module.ts文件。 - 生成的内容包含
namespaced: true、根据 payload 示例推测的初始state、占位用的 mutations,以及带 API 调用骨架的 actions。
类型签名与常量同步
这类问题在整个开发周期中反复出现,是状态管理领域的老难题——比如 action 参数类型写错,或者 mutation 常量在多个地方硬编码,导致改一处漏一处。
- 在 Pinia store 的 action 函数里,将光标停在参数位置时,CodeBuddy 会自动补全精确的 TypeScript 类型,例如
login(payload: { username: string; password: string })。 - 在 Vuex 中,只要你在
types.ts或mutation-types.ts里定义了常量,比如export const ADD_ITEM = 'ADD_ITEM',CodeBuddy 就会在所有引用该常量的mutations和actions文件中保持同步。重命名常量时,所有引用位置都会自动更新。
模式选择与上下文感知
有一点需要特别提醒:不要仅使用默认模式。对于状态管理这类对结构敏感的任务,组合运用不同模式效果更好。
- 首次创建 store 时,推荐使用 Craft 模式。直接说“生成用户 store,state 包含 id、name、token,actions 包括 login/logout”,AI 就能直接写好文件并插入项目中。
- 在重构复杂逻辑之前,建议使用 Plan 模式。比如问“当前 cart store 的 addItem action 如何支持库存校验和错误提示?给出三种方案”,待确认后再执行。
- 如果想检查某个 mutation 是否在所有组件中正确调用,可使用 Ask 模式。直接问“项目里哪些地方 dispatch 了 CART_ADD_ITEM?”即可获得结果。
