mcpField
V
vee-validate-skilld

vee-validate-skilld

github.com/skilld-devDevelopment184186 installsUpdated 3w ago
Repository

About vee-validate-skilld

vee-validate-skilld is a reference for Vue 3 developers using vee-validate 4.15.1 for form validation. It covers the Composition API, declarative components, field paths, validation modes, and common implementation pitfalls.

Key features

  1. 01Composition API form management
  2. 02Declarative Form and Field components
  3. 03Field and field-array management
  4. 04Yup, Zod, and Valibot schema adapters
  5. 05Validation trigger and error handling

Use cases

  1. 01Implement form validation in a Vue 3 application
  2. 02Handle nested objects and array fields
  3. 03Configure typed schemas for TypeScript forms

Install

Copy the command and run it in a terminal.

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

After installing, type/vee-validate-skilldin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

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

Details

From the project README

vee-validate 4.15.1

Form validation for Vue 3. Facts below come from the prepared source (dist/vee-validate.d.ts, dist/vee-validate.mjs, package.json) and official docs at https://vee-validate.logaretm.com/v4/.

Environment

  • Package [email protected] (package.json:3). Requires vue ^3.4.26 as peer (package.json:42).
  • ESM + CJS, sideEffects: false, single entry vee-validate (package.json:11-26).
  • v4 supports Vue 3 only. Vue 2 needs vee-validate 2.x/3.x (README:69-72).
  • Schema adapters live in separate packages: @vee-validate/yup, @vee-validate/zod, @vee-validate/valibot; global rules in @vee-validate/rules; messages in @vee-validate/i18n.

Two API styles

Composition API (preferred for new code). 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>

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

Declarative components. Form + Field with scoped slots:

<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>

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

Core rules

Validation modes

Global defaults: validateOnBlur: true, validateOnChange: true, validateOnInput: false, validateOnModelUpdate: true, bails: true. Change globally with configure(); note these four trigger flags only apply to the <Field> component, not useField (https://vee-validate.logaretm.com/v4/api/configuration/). To validate only on submit, disable input/change/blur triggers per field in defineField config or globally (https://github.com/logaretm/vee-validate/discussions/4903).

References

  • Composition API: useForm, defineField, useField, useFieldArray, state and setter composables, form context.
  • Components: Form, Field, FieldArray, ErrorMessage props, slots, rendering, v-model rules.
  • Validation: validator functions, object schemas, typed schemas, global rules, i18n, standalone validate utils.
  • API surface: every runtime export and notable type, cited to dist/vee-validate.d.ts.
  • Version changes: API additions, breaking changes, and deprecations from 4.9.0 to 4.15.1.
  • Pitfalls: composition caveats, nested path rules, array fields, known open issues.

Comments

Markdown supported