文章目录
- Vibe Coding 时代:三款 Vue 生态 UI 组件库 Claude Code 技能插件,让 AI 写代码告别幻觉
-
- 前言
- 设计思路:从 "LLM记忆" 到 "文档注入"
-
- 为什么不是 RAG?
- 技能插件方案
- 三款技能插件详解
-
- 1. element-ui-vue2 —— Element UI(Vue 2.x)
- 2. element-plus-ui-vue3 —— Element Plus(Vue 3.x)
- 3. uview-ui —— uView UI(uni-app Vue 2.x)
- 三款技能对比一览
- 安装 & 使用
-
- 前置条件
- 方法一:ClawHub CLI(推荐)
- 方法二:OpenClaw CLI
- 手动安装
- 验证安装
- 效果对比:有无技能的 AI 代码生成质量
-
- 场景:生成一个带表单验证的登录页面
- 技术架构
-
- 为什么选择 "文档副本" 而非 "知识摘要"
- 爬取与生成流程
- 技能激活机制
- GitHub 仓库
- 后续规划
- 结语
Vibe Coding 时代:三款 Vue 生态 UI 组件库 Claude Code 技能插件,让 AI 写代码告别幻觉
前言
在使用 Claude Code、Cursor、Copilot 等 AI 编程助手开发 Vue 项目时,你是否遇到过这样的场景:
“帮我用 Element UI 写一个带表单验证的登录页”
AI 助手自信地生成了代码,但你发现:
- el-form 的 rules 属性名写成了 validations?
- el-table 的 slot 名用错了,slot-scope="scope" 写成了 Vue 3 语法?
- 甚至编造了一个根本不存在的 el-datepicker 组件名……
这是 LLM 幻觉(Hallucination)的典型表现——AI 模型训练数据中的框架知识是模糊的时间快照,无法精准记忆每个组件的 Props、Events、Slots 细节。
为了解决这个问题,我开发了三款基于官方文档的 Claude Code 技能插件,将 Vue 生态最常用的三个 UI 组件库的完整 API 文档注入 AI 上下文,让 AI 编程助手在生成代码时能准确引用官方 API,告别幻觉。
设计思路:从 “LLM记忆” 到 “文档注入”
为什么不是 RAG?
传统的 RAG(检索增强生成)方案需要向量数据库 + 语义检索,部署成本高,且检索结果可能不完整。
技能插件方案
每个技能插件包含两个核心文件:
skill-name/
├── SKILL.md # 索引锚点:触发条件 + 分类索引表 + 代码示例
├── llms-full.txt # 全量文档聚合(2.4万-6.2万行),适合大上下文一次性加载
└── references/ # 60-103 个独立 .md 文件,按官方分类组织
工作流程:
核心优势:
| LLM 训练数据记忆 | ❌ 易幻觉 | ❌ 版本滞后 | 无 |
| RAG 向量检索 | ⚠️ 依赖检索质量 | ⚠️ 可能遗漏 | 高 |
| 技能插件文档注入 | ✅ 官方原文 | ✅ 100% 覆盖 | 零部署 |
三款技能插件详解
1. element-ui-vue2 —— Element UI(Vue 2.x)
饿了么开源、国内最广泛使用的 Vue 2.x 桌面端组件库
| 框架版本 | Vue 2.x Options API |
| 组件前缀 | el- |
| 官方文档 | element.eleme.cn |
| 文档数量 | 69 个组件 + 8 篇指南 |
| llms-full.txt | 24,586 行 |
| 技能大小 | 1.9 MB |
涵盖组件:
- 基础组件(8):Layout、Container、Color、Typography、Border、Icon、Button、Link
- 表单组件(16):Form、Input、Select、Cascader、DatePicker、Upload、Rate……
- 数据展示(12):Table、Tag、Tree、Pagination、Badge、Avatar、Skeleton、Empty……
- 通知(5):Alert、Loading、Message、MessageBox、Notification
- 导航(6):NavMenu、Tabs、Breadcrumb、Dropdown、Steps
- 其他(14):Dialog、Tooltip、Popover、Card、Carousel、Collapse、Drawer……
触发场景:
<!– 当 AI 检测到 el- 前缀组件时自动激活 –>
<template>
<el-form :model="form" :rules="rules" ref="formRef">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username" placeholder="请输入" />
</el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: { username: '' },
rules: { username: [{ required: true, message: '请输入用户名', trigger: 'blur' }] }
}
}
}
</script>
安装命令:
# ClawHub
clawhub install @wufengsheng/element-ui-vue2
# OpenClaw
openclaw skills install @wufengsheng/element-ui-vue2
2. element-plus-ui-vue3 —— Element Plus(Vue 3.x)
Element UI 官方升级版,专为 Vue 3 设计,支持 Composition API
| 框架版本 | Vue 3.x Composition API(<script setup>) |
| 组件前缀 | el- |
| 官方文档 | element-plus.org |
| 文档数量 | 100 个组件 + 18 篇指南 |
| llms-full.txt | 62,285 行 |
| 技能大小 | 5.7 MB |
相比 Element UI 新增 30+ 组件:
- text、scrollbar、space、splitter — 布局增强
- autocomplete、input-tag、input-otp、mention — 新输入组件
- select-v2、table-v2、tree-v2 — 虚拟化高性能版本
- tour、segmented、affix、anchor、watermark — 全新组件
- 暗黑模式、SSR、自定义命名空间等新特性指南
触发场景:
<template>
<el-table :data="tableData" border stripe>
<el-table-column prop="date" label="日期" sortable />
<el-table-column label="操作">
<template #default="{ row }">
<el-button size="small" @click="handleEdit(row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
const tableData = ref([
{ date: '2024-01-01', name: '张三' }
])
const handleEdit = (row) => {
ElMessage.success(`编辑: ${row.name}`)
}
</script>
安装命令:
# ClawHub
clawhub install @wufengsheng/element-plus-ui-vue3
# OpenClaw
openclaw skills install @wufengsheng/element-plus-ui-vue3
3. uview-ui —— uView UI(uni-app Vue 2.x)
uni-app 生态最流行的 UI 框架,全面兼容 nvue,一次编写多端发布
| 框架版本 | uni-app Vue 2.x Options API |
| 组件前缀 | u- |
| 官方文档 | uviewui.com |
| 文档数量 | 86 个组件 + 17 个 JS 工具 + 19 篇指南 |
| llms-full.txt | 16,932 行 |
| 技能大小 | 1.7 MB |
涵盖内容:
- 基础组件(16):Button、Icon、Image、Text、Layout、Cell、Badge、Tag……
- 表单组件(16):Form、Input、Checkbox、Radio、Picker、Calendar、Upload……
- 数据展示(17):Grid、Swiper、Skeleton、Collapse、Steps、CountDown、Parse……
- 反馈组件(12):Toast、Modal、Popup、ActionSheet、NoticeBar、SwipeAction……
- 导航组件(5):Navbar、Tabbar、Tabs、Subsection、BackTop
- JS 工具库(17):Http 请求、节流防抖、时间格式化、路由跳转、深拷贝……
触发场景:
<template>
<view>
<u-navbar title="用户中心" :safeAreaInsetTop="true" />
<u-form :model="form" ref="formRef">
<u-form-item label="手机号" prop="phone">
<u-input v-model="form.phone" placeholder="请输入手机号" />
</u-form-item>
</u-form>
<u-button type="primary" @click="submit">提交</u-button>
<u-toast ref="uToast" />
</view>
</template>
<script>
export default {
data() {
return { form: { phone: '' } }
},
methods: {
submit() {
this.$refs.uToast.show({ title: '提交成功', type: 'success' })
}
}
}
</script>
安装命令:
# ClawHub
clawhub install @wufengsheng/uview-ui
# OpenClaw
openclaw skills install @wufengsheng/uview-ui
三款技能对比一览
| Vue 版本 | 2.x Options API | 3.x Composition API | 2.x uni-app |
| 平台 | 桌面端 | 桌面端 | 移动端/多端 |
| 组件数 | 69 | 100 | 86 + 17 JS 工具 |
| 指南数 | 8 | 18 | 19 |
| llms-full 行数 | 24,586 | 62,285 | 16,932 |
| 技能大小 | 1.9 MB | 5.7 MB | 1.7 MB |
| 官网 | element.eleme.cn | element-plus.org | uviewui.com |
安装 & 使用
前置条件
- 已安装 Claude Code(或其他支持技能插件的 AI 编程助手)
- 已安装 ClawHub CLI 或 OpenClaw CLI
方法一:ClawHub CLI(推荐)
# 安装 ClawHub
npm install -g clawhub
# 搜索技能
clawhub search element-ui
clawhub search vue3
clawhub search uni-app
# 安装单个技能
clawhub install @wufengsheng/element-ui-vue2
# 一键安装全部
clawhub install @wufengsheng/element-ui-vue2 @wufengsheng/element-plus-ui-vue3 @wufengsheng/uview-ui
# 查看已安装
clawhub list
方法二:OpenClaw CLI
openclaw skills install @wufengsheng/element-ui-vue2
openclaw skills install @wufengsheng/element-plus-ui-vue3
openclaw skills install @wufengsheng/uview-ui
手动安装
git clone https://github.com/WuFengSheng/ui-skills.git
cp -r ui-skills/skills/* ~/.claude/skills/
验证安装
重启 Claude Code 会话后,在项目中输入包含 el-button / u-input 等组件前缀的代码,技能会自动激活。你也可以在设置中查看已安装的技能列表。
效果对比:有无技能的 AI 代码生成质量
场景:生成一个带表单验证的登录页面
❌ 无技能(仅依赖 LLM 记忆):
<!– AI 可能生成错误的 API –>
<el-form :model="loginForm" :validations="rules"> <!– ❌ 属性名错误 –>
<el-form-item label="用户名" name="username"> <!– ❌ 应该是 prop –>
<el-input v-model="loginForm.username" />
</el-form-item>
<el-button @click="submit" :loading="isLoading">登录</el-button>
</el-form>
✅ 有技能(基于官方文档):
<!– AI 根据 references/form/form.md 生成正确 API –>
<el-form :model="loginForm" :rules="rules" ref="loginFormRef" status-icon>
<el-form-item label="用户名" prop="username">
<el-input v-model="loginForm.username" placeholder="请输入用户名" clearable />
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="loginForm.password" type="password" show-password />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('loginFormRef')">登录</el-button>
<el-button @click="resetForm('loginFormRef')">重置</el-button>
</el-form-item>
</el-form>
差异一目了然:rules 而非 validations,prop 而非 name,show-password 是真实存在的属性。
技术架构
为什么选择 “文档副本” 而非 “知识摘要”
- 准确性优先:官方文档是权威来源,无转述偏差
- 版本锁定:每个技能对应特定框架版本,避免 API 混淆
- 零延迟更新:官方文档更新时,重新爬取即可同步
爬取与生成流程
官方文档站点
↓ opencli 浏览器自动化
temp/*.md (原始 Markdown)
↓ Python 组装脚本
├── references/*.md (带 YAML frontmatter)
├── llms-full.txt (全量聚合)
└── SKILL.md (索引锚点,~400 行)
↓ 人工审查
最终技能包 → GitHub Release
技能激活机制
当 Claude Code 检测到以下条件时自动激活对应技能:
激活后,AI 优先从技能的 references/ 目录查找对应组件文档,确保 API 使用符合官方规范。
GitHub 仓库
项目完全开源,欢迎 Star ⭐ 和 PR:
https://github.com/WuFengSheng/ui-skills
ui-skills/
├── README.md
└── skills/
├── element-ui-vue2/ # Element UI Vue 2 技能
│ ├── SKILL.md
│ ├── llms-full.txt
│ └── references/
├── element-plus-ui-vue3/ # Element Plus Vue 3 技能
│ ├── SKILL.md
│ ├── llms-full.txt
│ └── references/
└── uview-ui/ # uView UI uni-app 技能
├── SKILL.md
├── llms-full.txt
└── references/
后续规划
- 覆盖更多 Vue 生态 UI 库(Naive UI、Ant Design Vue、Vant、TDesign……)
- 支持 React 生态组件库(Ant Design、MUI、shadcn/ui……)
- 实现技能自动更新(监听官方文档变更 → 自动重新爬取 → PR)
- 提供 evals 基准测试,量化技能对代码生成准确率的提升
结语
这三款技能插件解决了 AI 编程助手中最让人头疼的 API 幻觉 问题。它们不是替代 AI 的智能,而是为 AI 提供精准的参考系——就像你不会要求一个高级工程师背下所有 API 文档,但你会给他一本手册让他随时查阅。
如果你也是 Vue 开发者,正在使用 Claude Code 或类似工具,不妨试试这套技能插件。让 AI 写出的每一行代码,都有官方文档背书。
Star ⭐ WuFengSheng/ui-skills 获取更新 安装: clawhub install @wufengsheng/element-ui-vue2 反馈: GitHub Issues



