SuperAPI AI 工具集

vue-expert

前端与建站

查看项目

更新于 10-16 14:54

技能介绍

用途

该技能定位为 Vue.js 生态系统专家,用于在审查或编写代码时提供规范化的指导准则,覆盖 Vue 3、Composition API、Nuxt 与 Pinia。

主要能力与准则

Vue 3 附加说明

  • 需要时使用 Vue 3 的 Teleport 组件;
  • 对异步组件使用 Suspense;
  • 实现恰当的错误处理;
  • 遵循 Vue 3 风格指南与命名约定;
  • 使用 Vite 进行快速开发与构建。

Composition API:Composables 与通用用法

  • 使用 setup() 函数承载组件逻辑;
  • 使用 ref 与 reactive 管理响应式状态;
  • 使用 computed() 实现计算属性;
  • 使用 watch 与 watchEffect 处理副作用;
  • 使用 onMounted、onUpdated 等实现生命周期钩子;
  • 使用 provide/inject 进行依赖注入。

项目结构

推荐的目录结构为 src/ 下包含 components/、composables/、views/、router/、store/、assets/,以及 App.vue 与 main.js。

TypeScript 准则

  • 使用 TypeScript 获得类型安全;
  • 实现规范的 props 与 emits 定义。

组件规则

  • 目录使用小写加短横线(例如 components/auth-wizard);
  • 函数优先使用具名导出;
  • 始终使用 Vue Composition API 的 script setup 风格;
  • 使用 DaisyUI 与 Tailwind 构建组件与样式;
  • 使用 Tailwind CSS 实现响应式设计,采用移动优先的方式。

约定

  • 遵循 Vue.js 官方文档的最佳实践;
  • 以一致的顺序组织组件选项(如 data、computed、methods、watch、生命周期钩子);
  • 使用 v-bind 与 v-on 指令进行数据绑定和事件处理;
  • Composition API 组件优先使用 <script setup> 语法;
  • 使用 Pinia 进行全局状态管理;
  • 使用 Vue Router 进行导航,并使用带类型的路由参数。

强制规则与反模式

强制规则(Iron Laws):

  • 新的 Vue 3 组件始终使用 Composition API 与 <script setup> 语法;
  • 新组件绝不使用 Options API;
  • 共享应用状态始终使用 Pinia,而非 Vuex 或 provide/inject;
  • 绝不在 actions 之外直接修改 Pinia store 状态;
  • 组件边界始终使用带 TypeScript 类型的 defineProps 与 defineEmits。

列出的反模式与正确做法:

  • 新组件使用 Options API —— 属于被取代的模式、类型推断较差,应改用 Composition API 与 <script setup>;
  • 使用 Vuex 做状态管理 —— 在 Vue 3 生态中已废弃,应改用 Pinia(更简单、TypeScript 支持更好);
  • 直接修改 Pinia store 状态 —— 会破坏响应式追踪与 devtools,应仅通过 store actions 修改状态;
  • 缺少 defineProps 的 TypeScript 类型 —— 会导致运行时 props 错误、IDE 支持差,应始终为 props 与 emits 提供 TypeScript 类型;
  • 对响应式对象进行解构 —— 解构会丢失响应性,应使用 toRefs() 或保持响应式对象完整。

使用方式

该技能以代码规范准则的形式在审查或编写代码时应用。资料同时给出了一个强制性的记忆协议(Memory Protocol)作为使用流程的一部分:开始前执行 cat .claude/context/memory/learnings.md,完成后记录任何新发现的模式或例外;并提示假定中断可能发生,若未写入记忆则视为未发生。

适用场景

适用于需要遵循上述 Vue 3 规范的代码编写与代码审查工作,涉及 Composition API、Nuxt、Pinia、TypeScript、Tailwind 与 DaisyUI 等场景。

限制

该技能为 1 个单独技能的合并结果(vue-expert)。资料未提供价格、平台支持范围、版本要求或效果数据,这些信息暂未提供。Nuxt 与 Pinia 仅作为覆盖范围被提及,未展开具体指令。