Vue 组件与响应式规范
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b8893874/vue-ls。
技能介绍
要解决什么问题
在现有 Vue 3 仓库里改 SFC、删条件分支或合并展示逻辑时,常见问题不是「能不能跑」,而是 响应式链路越改越绕:多余的 computed 透传、reactive 与 ref 混用、删了分支却留着旧类型和兼容函数,类型检查过了但语义已经变了。
本技能在命中后 强制执行全文规则,不允许只改模板或只回答问题就跳过收口步骤。
技能如何约束改动
- 文件与 API 习惯:
.vue区块顺序固定为template→script→style;保持现有script setup、Composition API、TypeScript,不擅自换风格。 - 响应式选型:只需替换整对象/数组时用
shallowRef/shallowReactive;需要跟踪字段深层变化时,用 同一个reactive对象直接改字段,避免中转层。 - 去冗余:禁止
computed(() => otherComputed.value)这类无派生逻辑的包裹;删分支后合并单层computed或直接引用原响应式值。 - 模板与组件:图片不在 script 里
import,在 template 用v-if控制;DOM 引用优先useTemplateRef;双向绑定优先defineModel,不把const reactive(...)整对象当作组件级v-model绑定目标。
修改后强制收口(不可跳过)
- 从 diff 列出语义变化的字段、函数、类型与响应式变量,并 全仓库搜索 定义与调用点。
- 清理失去独立语义的
computed、中间变量、旧联合类型与纯透传函数(如只返回入参或已无意义的String()/Number())。 - 编译通过不能替代 上述检索与清理;未完成不得宣告任务完成。
适用边界
仅覆盖当前仓库内的 Vue 组件与响应式相关改动;非 Vue 专属习惯仍遵循 frontend-global。多个 skill 同时命中时规则叠加执行。
使用场景
- 删掉「仅旧版展示」条件分支后,需要全仓库搜 computed 与类型,去掉只剩透传的中间层
- 把多个 v-model 从 prop 加 update:key 改成 defineModel,并确认绑定目标支持整值回写
- 表单与查询条件仍用单个 reactive 对象维护,但要把 shallowRef 误用在只需整对象替换的列表状态上纠正
- 合并两套展示逻辑后,清理无派生逻辑的 computed 以及只返回入参的旧转换函数
适合人员
- 维护 Vue 3 管理后台、经常删兼容分支却担心响应式链路残留的前端工程师
- 在 TypeScript 严格模式下改 SFC,希望删分支后强制做全量标识符检索的同学
- 负责组件库或业务组件,需要把双向绑定统一成 defineModel 并避免 reactive 整对象绑 v-model 的维护者
- 用 AI 辅助改 Vue 代码、希望交付前必须完成 diff 语义核对与调用点清理的技术负责人