mcpField
V
vant-ui-skills

vant-ui-skills

github.com/jiaiyan开发040 次安装32 周前更新
代码仓库

关于 vant-ui-skills

vant-ui-skills 是帮助 AI Agent 使用 Vant 移动端 UI 组件的技能库。它按组件、Vue 3 组合式函数和配置主题等内容组织指南,面向移动 Web 与混合应用开发者。

主要功能

  1. 01提供 Vant 组件指南
  2. 02涵盖表单、交互、展示和导航技能
  3. 03提供 Vue 3 组合式函数指南
  4. 04包含配置、主题和 i18n 技能
  5. 05提供组件 API 与用法示例

适用场景

  1. 01在移动应用中实现 Vant 组件
  2. 02配置 Vant 或自定义主题
  3. 03为 Vant 项目添加国际化
  4. 04排查 Vant 组件问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jiaiyan/vant-ui-skills --skill vant-ui-skills

安装后在 Claude Code 中输入/vant-ui-skills确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
README_CN.md
AGENTS.md

详细介绍

Vant 技能库

一个全面的 Vant UI 框架技能库,旨在帮助 AI Agent 理解并有效使用 Vant 移动端组件。

何时调用

在以下情况下调用此技能:

  • 用户需要实现任何 Vant 组件
  • 用户询问 Vant 配置或设置
  • 用户想要为移动应用自定义主题
  • 用户需要国际化(i18n)支持
  • 用户询问移动优先的设计模式
  • 用户遇到 Vant 组件相关问题
  • 用户正在构建移动端 Web 应用或混合应用

技能库概览

Vant 是一个轻量、可靠的移动端组件库。此库包含 102 项技能,按以下类别组织:

类别数量描述路径格式
基础组件10基础 UI 组件./components/van-{name}/SKILL.md
表单组件19表单输入和验证./components/van-{name}/SKILL.md
操作组件12用户交互组件./components/van-{name}/SKILL.md
展示组件26数据展示组件./components/van-{name}/SKILL.md
导航组件10导航和路由./components/van-{name}/SKILL.md
业务组件9特定业务组件./components/van-{name}/SKILL.md
组合式函数11Vue 3 组合式 API 工具./composables/use-{name}/SKILL.md
基础技能5核心设置和配置./vant-{name}/SKILL.md

如何查找技能

1. 组件技能(86 项)

所有组件技能都遵循 van-{component-name} 命名规范,并位于 components/ 目录中。

路径格式:

./components/van-{component-name}/SKILL.md

示例:

  • Button:./components/van-button/SKILL.md
  • Form:./components/van-form/SKILL.md
  • List:./components/van-list/SKILL.md
  • Popup:./components/van-popup/SKILL.md
2. 组合式函数技能(11 项)

组合式函数提供 Vue 3 组合式 API 工具,用于实现常见的移动端模式。

路径格式:

./composables/use-{name}/SKILL.md

示例:

  • useCountDown:./composables/use-count-down/SKILL.md
  • useLazyRender:./composables/use-lazy-render/SKILL.md
  • useRect:./composables/use-rect/SKILL.md
3. 基础技能(6 项)

基础技能涵盖核心设置和配置。

技能名称路径描述
快速入门./vant-quickstart/SKILL.md安装和设置
主题设置./vant-theming/SKILL.md主题自定义
i18n./vant-i18n/SKILL.md国际化
高级用法./vant-advanced-usage/SKILL.md高级模式
组件./vant-components/SKILL.md组件概览索引
组合式函数./vant-composables/SKILL.md组合式函数概览索引

技能调用指南

第 1 步:识别用户意图

分析用户的请求,确定需要哪种技能类别:

用户请求模式技能类别技能示例
“创建按钮/表单/列表……”组件van-button、van-form、van-list
“如何设置 Vant”基础vant-quickstart
“自定义主题颜色”基础vant-theming
“添加多语言支持”基础vant-i18n
“使用倒计时器”组合式use-count-down
“实现懒加载”组合式use-lazy-render
第 2 步:定位技能文件

使用上述路径模式定位相应的技能文件:

# For component skills
./components/van-{component-name}/SKILL.md

# For composables skills
./composables/use-{name}/SKILL.md

# For foundation skills
./vant-{name}/SKILL.md
第 3 步:阅读并应用技能内容

每个技能文件包含:

  • 调用时机:使用该技能的具体条件
  • 功能:组件能力和选项
  • API 参考:属性、事件、插槽、暴露项
  • 用法示例:常见模式的代码片段
  • 最佳实践:推荐的实现指南

组件技能索引

基础组件(10)
组件技能路径描述
Button./components/van-button/SKILL.md按钮
Cell./components/van-cell/SKILL.md单元格项
CellGroup./components/van-cell-group/SKILL.md单元格组
ConfigProvider./components/van-config-provider/SKILL.md全局配置
Icon./components/van-icon/SKILL.md图标
Image./components/van-image/SKILL.md图片
Layout./components/van-layout/SKILL.md布局系统
Popup./components/van-popup/SKILL.md弹出层
Toast./components/van-toast/SKILL.md轻提示消息
Transition./components/van-transition/SKILL.md过渡效果
Form Components (19)
ComponentSkill PathDescription
AddressEdit./components/van-address-edit/SKILL.mdAddress editor
AddressList./components/van-address-list/SKILL.mdAddress list
Area./components/van-area/SKILL.mdArea picker
Calendar./components/van-calendar/SKILL.mdCalendar
Cascader./components/van-cascader/SKILL.mdCascading selection
Checkbox./components/van-checkbox/SKILL.mdCheckboxes
ContactCard./components/van-contact-card/SKILL.mdContact card
ContactEdit./components/van-contact-edit/SKILL.mdContact editor
ContactList./components/van-contact-list/SKILL.mdContact list
DatePicker./components/van-date-picker/SKILL.mdDate picker
Field./components/van-field/SKILL.mdInput fields
Form./components/van-form/SKILL.mdForm management
NumberKeyboard./components/van-number-keyboard/SKILL.mdNumber keyboard
PasswordInput./components/van-password-input/SKILL.mdPassword input
Picker./components/van-picker/SKILL.mdPicker
Radio./components/van-radio/SKILL.mdRadio buttons
Rate./components/van-rate/SKILL.mdStar rating
Search./components/van-search/SKILL.mdSearch bar
Slider./components/van-slider/SKILL.mdSlider
Stepper./components/van-stepper/SKILL.mdStepper
Switch./components/van-switch/SKILL.mdToggle switch
TimePicker./components/van-time-picker/SKILL.mdTime picker
Uploader./components/van-uploader/SKILL.mdFile uploader
Action Components (12)
ComponentSkill PathDescription
ActionSheet./components/van-action-sheet/SKILL.mdAction sheet
Dialog./components/van-dialog/SKILL.mdDialog modal
DropdownMenu./components/van-dropdown-menu/SKILL.mdDropdown menu
FloatingBubble./components/van-floating-bubble/SKILL.mdFloating bubble
FloatingPanel./components/van-floating-panel/SKILL.mdFloating panel
Loading./components/van-loading/SKILL.mdLoading indicator
Notify./components/van-notify/SKILL.mdNotification
Overlay./components/van-overlay/SKILL.mdOverlay
PickerGroup./components/van-picker-group/SKILL.mdPicker group
PullRefresh./components/van-pull-refresh/SKILL.mdPull to refresh
ShareSheet./components/van-share-sheet/SKILL.mdShare sheet
SwipeCell./components/van-swipe-cell/SKILL.mdSwipe cell
Display Components (26)
ComponentSkill PathDescription
Badge./components/van-badge/SKILL.mdBadge
Collapse./components/van-collapse/SKILL.mdCollapse
CountDown./components/van-count-down/SKILL.mdCountdown
Divider./components/van-divider/SKILL.mdDivider
Empty./components/van-empty/SKILL.mdEmpty state
Grid./components/van-grid/SKILL.mdGrid
ImagePreview./components/van-image-preview/SKILL.mdImage preview
Lazyload./components/van-lazyload/SKILL.mdLazy loading
List./components/van-list/SKILL.mdInfinite list
Loading./components/van-loading/SKILL.mdLoading
Marquee./components/van-marquee/SKILL.mdMarquee
NoticeBar./components/van-notice-bar/SKILL.mdNotice bar
Pagination./components/van-pagination/SKILL.mdPagination
PasswordInput./components/van-password-input/SKILL.mdPassword input
Picker./components/van-picker/SKILL.mdPicker
Progress./components/van-progress/SKILL.mdProgress bar
RollingText./components/van-rolling-text/SKILL.mdRolling text
Skeleton./components/van-skeleton/SKILL.mdSkeleton
Slider./components/van-slider/SKILL.mdSlider
Step./components/van-step/SKILL.mdSteps
Sticky./components/van-sticky/SKILL.mdSticky positioning
Swipe./components/van-swipe/SKILL.mdSwipe carousel
Tag./components/van-tag/SKILL.mdTag
TextEllipsis./components/van-text-ellipsis/SKILL.mdText ellipsis
TreeSelect./components/van-tree-select/SKILL.mdTree select
Watermark./components/van-watermark/SKILL.mdWatermark
Navigation Components (10)
ComponentSkill PathDescription
BackTop./components/van-back-top/SKILL.mdBack to top
Grid./components/van-grid/SKILL.mdGrid navigation
IndexBar./components/van-index-bar/SKILL.mdIndex bar
NavBar./components/van-nav-bar/SKILL.mdNavigation bar
Pagination./components/van-pagination/SKILL.mdPagination
Sidebar./components/van-sidebar/SKILL.mdSidebar
Tab./components/van-tab/SKILL.mdTabs
Tabbar./components/van-tabbar/SKILL.mdTab bar
TreeSelect./components/van-tree-select/SKILL.mdTree select
业务组件(9)
组件技能路径描述
AddressEdit./components/van-address-edit/SKILL.md地址编辑器
AddressList./components/van-address-list/SKILL.md地址列表
Area./components/van-area/SKILL.md地区选择器
Card./components/van-card/SKILL.md卡片
ContactCard./components/van-contact-card/SKILL.md联系人卡片
ContactEdit./components/van-contact-edit/SKILL.md联系人编辑器
ContactList./components/van-contact-list/SKILL.md联系人列表
Coupon./components/van-coupon/SKILL.md优惠券
SubmitBar./components/van-submit-bar/SKILL.md提交栏

组合式函数索引(11)

组合式函数技能路径描述
useCountDown./composables/use-count-down/SKILL.md倒计时器
useCustomFieldValue./composables/use-custom-field-value/SKILL.md自定义字段值
useEventListener./composables/use-event-listener/SKILL.md事件监听器
useId./composables/use-id/SKILL.md唯一 ID 生成器
useLazyRender./composables/use-lazy-render/SKILL.md懒渲染
usePageVisibility./composables/use-page-visibility/SKILL.md页面可见性
useRect./composables/use-rect/SKILL.md元素矩形
useRelation./composables/use-relation/SKILL.md组件关系
useResetState./composables/use-reset-state/SKILL.md重置状态
useRtl./composables/use-rtl/SKILL.mdRTL 支持
useWindowSize./composables/use-window-size/SKILL.md窗口大小

使用示例

示例 1:用户询问按钮实现方式

用户请求:“如何创建一个带加载状态的主要按钮?”

Agent 操作:

  1. 确定意图:组件技能 - Button
  2. 查找技能:./components/van-button/SKILL.md
  3. 阅读技能内容
  4. 提供包含 API 参考和代码示例的回复

回复:

<template>
  <van-button type="primary" :loading="loading" @click="handleClick">
    {{ loading ? 'Loading...' : 'Submit' }}
  </van-button>
</template>

<script setup>
import { ref } from 'vue'

const loading = ref(false)

const handleClick = async () => {
  loading.value = true
  try {
    await submitData()
  } finally {
    loading.value = false
  }
}
</script>
示例 2:用户询问表单验证

用户请求:“如何创建带验证的表单?”

Agent 操作:

  1. 确定意图:组件技能 - Form
  2. 查找技能:./components/van-form/SKILL.md
  3. 阅读技能内容
  4. 提供包含验证示例的回复

回复:

<template>
  <van-form @submit="onSubmit">
    <van-field
      v-model="username"
      name="username"
      label="Username"
      placeholder="Username"
      :rules="[{ required: true, message: 'Please input username' }]"
    />
    <van-field
      v-model="password"
      type="password"
      name="password"
      label="Password"
      placeholder="Password"
      :rules="[{ required: true, message: 'Please input password' }]"
    />
    <div style="margin: 16px;">
      <van-button round block type="primary" native-type="submit">
        Submit
      </van-button>
    </div>
  </van-form>
</template>

<script setup>
import { ref } from 'vue'

const username = ref('')
const password = ref('')

const onSubmit = (values) => {
  console.log('submit', values)
}
</script>
示例 3:用户询问无限列表

用户请求:“如何实现无限滚动列表?”

Agent 操作:

  1. 确定意图:组件技能 - List
  2. 查找技能:./components/van-list/SKILL.md
  3. 阅读技能内容
  4. 提供包含列表示例的回复

回复:

<template>
  <van-list
    v-model:loading="loading"
    :finished="finished"
    finished-text="No more data"
    @load="onLoad"
  >
    <van-cell v-for="item in list" :key="item" :title="item" />
  </van-list>
</template>

<script setup>
import { ref } from 'vue'

const list = ref([])
const loading = ref(false)
const finished = ref(false)

const onLoad = () => {
  setTimeout(() => {
    for (let i = 0; i < 10; i++) {
      list.value.push(list.value.length + 1)
    }
    loading.value = false
    
    if (list.value.length >= 40) {
      finished.value = true
    }
  }, 1000)
}
</script>
示例 4:用户询问倒计时器

用户请求:“如何实现倒计时器?”

Agent 操作:

  1. 确定意图:组合式函数技能 - useCountDown
  2. 查找技能:./composables/use-count-down/SKILL.md
  3. 阅读技能内容
  4. 提供包含组合式函数示例的回复

回复:

<template>
  <van-count-down :time="time" />
</template>

<script setup>
import { useCountDown } from '@vant/use'

const countDown = useCountDown({
  time: 24 * 60 * 60 * 1000,
  autostart: true,
})

const time = countDown.current
</script>
示例 5:用户询问主题自定义

用户请求:“如何自定义 Vant 主题颜色?”

Agent 操作:

  1. 确定意图:基础技能 - 主题
  2. 查找技能:./vant-theming/SKILL.md
  3. 阅读技能内容
  4. 提供包含 CSS 变量示例的回复

回复:

:root {
  --van-primary-color: #1989fa;
  --van-success-color: #07c160;
  --van-danger-color: #ee0a24;
  --van-warning-color: #ff976a;
  --van-info-color: #1989fa;
}

配置要求

先决条件

使用此技能库前,请确保:

  1. 已安装 Vue 3.3+
  2. 已安装 Vant 4+
  3. 开发环境使用 Node.js 18+
安装
npm install vant
TypeScript 支持

添加到 tsconfig.json:

{
  "compilerOptions": {
    "types": ["vant/global"]
  }
}
导入方式
import 'vant/lib/index.css'
按需导入(推荐)
import { Button, Cell, Form } from 'vant'

输入参数

调用技能时,请考虑以下参数:

参数类型描述必填
componentstring组件名称(例如,“button”“form”)是
featurestring所需的特定功能(例如,“validation”“loading”)否
contextobject补充上下文(框架、TypeScript 用法)否

输出格式

每项技能都提供:

  1. API 参考:完整的属性、事件、插槽和暴露项
  2. 代码示例:可运行的代码片段
  3. 最佳实践:推荐的实现模式
  4. 常见问题:故障排除提示
  5. 组件交互:如何与其他组件配合使用

重要说明

1. 技能优先级

当多项技能都适用时,请按以下顺序优先选择:

  1. 特定组件的技能(最具体)
  2. 组合式技能(组合式 API 工具)
  3. 基础技能(配置)
2. 交叉引用

许多技能会引用相关技能。请务必查看:

  • 同一类别中的相关组件
  • 用于配置的基础技能
  • 常见模式对应的组合式技能
3. 版本兼容性

此技能库基于 Vant 4+。某些功能可能在较早版本中不可用。

4. 命名约定
  • 组件技能使用 van-{name} 格式(与 Vue 组件标签一致)
  • 组合式技能使用 use-{name} 格式(与 Vue 组合式 API 命名一致)
  • 基础技能使用 vant-{name} 格式
5. 文件结构
vant-skills/
├── SKILL.md                          # This file (main entry)
├── README.md                         # English documentation
├── README_CN.md                      # Chinese documentation
├── AGENTS.md                         # Agents documentation
├── components/                       # 86 component skills
│   ├── van-button/
│   │   └── SKILL.md
│   ├── van-form/
│   │   └── SKILL.md
│   └── ...
├── composables/                      # 11 composable skills
│   ├── use-count-down/
│   │   └── SKILL.md
│   ├── use-lazy-render/
│   │   └── SKILL.md
│   └── ...
├── vant-quickstart/                  # Foundation skills
├── vant-theming/
├── vant-i18n/
├── vant-advanced-usage/
└── vant-components/
6. 移动优先设计

Vant 专为移动设备设计。需要注意以下几点:

  • 便于触控的交互
  • 响应式布局
  • 针对移动设备的性能优化
  • 原生风格的 UI 模式

面向 Agent 的最佳实践

  1. 当用户提到 Vant 时,始终从此文件开始
  2. 根据用户意图找到对应的技能
  3. 回答前阅读完整的技能文件
  4. 提供技能文档中的代码示例
  5. 适用时引用相关技能
  6. 纳入技能内容中的最佳实践
  7. 与用户上下文相关时提及常见问题
  8. 在所有建议中考虑移动优先模式

相关资源

评论

支持 Markdown