mcpField
V
vee-validate-skilld

vee-validate-skilld

github.com/skilld-dev开发184186 次安装3 周前更新
代码仓库

关于 vee-validate-skilld

vee-validate-skilld 为 Vue 3 开发者提供 vee-validate 4.15.1 表单验证的 API 与实践参考。内容涵盖组合式 API、声明式组件、字段路径、验证模式及常见注意事项。

主要功能

  1. 01组合式 API 表单管理
  2. 02Form 与 Field 声明式组件
  3. 03字段与数组字段管理
  4. 04支持 Yup、Zod、Valibot schema 适配器
  5. 05验证触发配置与错误处理

适用场景

  1. 01在 Vue 3 应用中构建表单验证
  2. 02处理嵌套对象和数组字段
  3. 03为 TypeScript 表单配置类型化 schema

安装

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

$npx skills add https://github.com/skilld-dev/vue-ecosystem-skills --skill vee-validate-skilld

安装后在 Claude Code 中输入/vee-validate-skilld确认已加载。

包含的文件

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

references/
api-surface.md
components.md
composition-api.md
pitfalls.md
validation.md
version-changes.md

详细介绍

vee-validate 4.15.1

适用于 Vue 3 的表单验证。以下事实来自准备好的源代码(dist/vee-validate.d.ts、dist/vee-validate.mjs、package.json)以及官方文档:https://vee-validate.logaretm.com/v4/。

环境

  • 包 [email protected](package.json:3)。需要 peer 依赖 vue ^3.4.26(package.json:42)。
  • ESM + CJS,sideEffects: false,单一入口 vee-validate(package.json:11-26)。
  • v4 仅支持 Vue 3。Vue 2 需要 vee-validate 2.x/3.x(README:69-72)。
  • Schema 适配器位于独立包中:@vee-validate/yup、@vee-validate/zod、@vee-validate/valibot;全局规则在 @vee-validate/rules 中;消息在 @vee-validate/i18n 中。

两种 API 风格

组合式 API(新代码首选)。 useForm + defineField + handleSubmit:

<script setup>
import { useForm } from 'vee-validate';

function required(value) {
  return value ? true : 'This field is required';
}

const { defineField, handleSubmit, errors } = useForm({
  validationSchema: { field: required },
});

const [field, fieldProps] = defineField('field');

const onSubmit = handleSubmit(values => {
  console.log(values);
});
</script>

<template>
  <form @submit="onSubmit">
    <input v-model="field" v-bind="fieldProps" />
    <span>{{ errors.field }}</span>
    <button>Submit</button>
  </form>
</template>

来源:README:84-118,https://vee-validate.logaretm.com/v4/guide/composition-api/getting-started/

声明式组件。 使用作用域插槽的 Form + Field:

<script setup>
import { Field, Form } from 'vee-validate';

function required(value) {
  return value ? true : 'This field is required';
}

function onSubmit(values) {
  console.log(values);
}
</script>

<template>
  <Form v-slot="{ errors }" @submit="onSubmit">
    <Field name="field" :rules="required" />
    <span>{{ errors.field }}</span>
    <button>Submit</button>
  </Form>
</template>

来源:README:122-153,https://vee-validate.logaretm.com/v4/guide/components/handling-forms/

核心规则

验证模式

全局默认值:validateOnBlur: true、validateOnChange: true、validateOnInput: false、validateOnModelUpdate: true、bails: true。使用 configure() 进行全局更改;请注意,这四个触发标志仅适用于 <Field> 组件,不适用于 useField(https://vee-validate.logaretm.com/v4/api/configuration/)。若要仅在提交时验证,请在 defineField 配置中或全局禁用输入、变更和失焦触发(https://github.com/logaretm/vee-validate/discussions/4903)。

参考资料

  • 组合式 API:useForm、defineField、useField、useFieldArray、状态与设置器组合函数、表单上下文。
  • 组件:Form、Field、FieldArray、ErrorMessage 的 props、插槽、渲染、v-model 规则。
  • 验证:验证器函数、对象架构、类型化架构、全局规则、i18n、独立的 validate 工具函数。
  • API 概览:所有运行时导出和重要类型,引用自 dist/vee-validate.d.ts。
  • 版本变更:从 4.9.0 到 4.15.1 的 API 新增、破坏性变更和弃用内容。
  • 注意事项:组合式 API 的注意事项、嵌套路径规则、数组字段、已知未解决问题。

评论

支持 Markdown