GitHub - logaretm/vee-validate: ✅ Painless Vue forms (original) (raw)
Painless Vue forms
Features
- 🍞 Easy: Declarative validation that is familiar and easy to setup
- 🧘♀️ Flexible: Synchronous, Asynchronous, field-level or form-level validation
- ⚡️ Fast: Build faster forms faster with intuitive API and small footprint
- 🏏 Minimal: Only handles the complicated form concerns, gives you full control over everything else
- 😎 UI Agnostic: Works with native HTML elements or your favorite UI library components
- 🦾 Progressive: Works whether you use Vue.js as a progressive enhancement or in a complex setup
- ✅ Built-in Rules: Companion lib with 25+ Rules that covers most needs in most web applications
- 🌐 i18n: 45+ locales for built-in rules contributed by developers from all over the world
Getting Started
Installation
Install with yarn
yarn add vee-validate
Install with npm
npm install vee-validate --save
Vue version support
The main v4 version supports Vue 3.x only, for previous versions of Vue, check the following the table
| vue Version | vee-validate version | Documentation Link |
|---|---|---|
| 2.x | 2.x or 3.x | v2 or v3 |
| 3.x | 4.x or 5.x | v4 or v5 |
Usage
vee-validate offers two styles to integrate form validation into your Vue.js apps.
Composition API
The fastest way to create a form and manage its validation, behavior, and values is with the composition API.
Create your form with useForm and then use defineField to create your field model and props/attributes and handleSubmit to use the values and send them to an API.
<button>Submit</button>
You can do so much more than this, for more info check the composition API documentation.
Declarative Components
Higher-order components can also be used to build forms. Register the Field and Form components and create a simple required validator:
<span>{{ errors.field }}</span>
<button>Submit</button>
The Field component renders an input of type text by default but you can control that
📚 Documentation
Read the documentation and demos.
Contributing
You are welcome to contribute to this project, but before you do, please make sure you read the contribution guide.
Credits
- Inspired by Laravel's validation syntax
- v4 API Inspired by Formik's
- Nested path types by react-hook-form
- Logo by Baianat
Emeriti
Here we honor past contributors and sponsors who have been a major part on this project.