vee-validate 4.15.0 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -178
- package/dist/vee-validate.cjs +100 -116
- package/dist/vee-validate.d.ts +44 -50
- package/dist/vee-validate.iife.js +100 -116
- package/dist/vee-validate.iife.prod.js.mjs +3 -3
- package/dist/vee-validate.mjs +101 -117
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="https://vee-validate.logaretm.com" target="_blank">
|
|
3
|
-
<img src="https://raw.githubusercontent.com/logaretm/vee-validate/main/logo.png" width="200" title="Go to website">
|
|
4
|
-
</a>
|
|
5
|
-
</p>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
Painless Vue forms
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
|
|
13
|
-
<a target="_blank" href="https://www.npmjs.com/package/vee-validate">
|
|
14
|
-
<img src="https://img.shields.io/npm/v/vee-validate.svg?label=&color=05bda8">
|
|
15
|
-
</a>
|
|
16
|
-
|
|
17
|
-
<a target="_blank" href="https://npm-stat.com/charts.html?package=vee-validate">
|
|
18
|
-
<img src="https://img.shields.io/npm/dm/vee-validate.svg?color=05bd6d&label=">
|
|
19
|
-
</a>
|
|
20
|
-
|
|
21
|
-
<a href="https://vee-validate.logaretm.com/
|
|
22
|
-
<img src="https://img.shields.io/badge/-docs%20and%20demos-009f53">
|
|
23
|
-
</a>
|
|
24
|
-
|
|
25
|
-
<a href="https://github.com/sponsors/logaretm">
|
|
26
|
-
<img src="https://img.shields.io/badge/-%E2%99%A5%20Sponsors-ec5cc6">
|
|
27
|
-
|
|
28
|
-
</a>
|
|
29
|
-
|
|
30
|
-
</p>
|
|
31
|
-
|
|
32
|
-
<br>
|
|
33
|
-
|
|
34
|
-
<p align="center">
|
|
35
|
-
<a href="https://github.com/sponsors/logaretm">
|
|
36
|
-
<img src='https://sponsors.logaretm.com/sponsors.svg'>
|
|
37
|
-
</a>
|
|
38
|
-
</p>
|
|
39
|
-
|
|
40
|
-
<br>
|
|
41
|
-
|
|
42
|
-
## Features
|
|
43
|
-
|
|
44
|
-
- **🍞 Easy:** Declarative validation that is familiar and easy to setup
|
|
45
|
-
- **🧘♀️ Flexible:** Synchronous, Asynchronous, field-level or form-level validation
|
|
46
|
-
- **⚡️ Fast:** Build faster forms faster with intuitive API and small footprint
|
|
47
|
-
- **🏏 Minimal:** Only handles the complicated form concerns, gives you full control over everything else
|
|
48
|
-
- **😎 UI Agnostic:** Works with native HTML elements or your favorite UI library components
|
|
49
|
-
- **🦾 Progressive:** Works whether you use Vue.js as a progressive enhancement or in a complex setup
|
|
50
|
-
- **✅ Built-in Rules:** Companion lib with 25+ Rules that covers most needs in most web applications
|
|
51
|
-
- **🌐 i18n:** 45+ locales for built-in rules contributed by developers from all over the world
|
|
52
|
-
|
|
53
|
-
## Getting Started
|
|
54
|
-
|
|
55
|
-
### Installation
|
|
56
|
-
|
|
57
|
-
```sh
|
|
58
|
-
# Install with yarn
|
|
59
|
-
yarn add vee-validate
|
|
60
|
-
|
|
61
|
-
# Install with npm
|
|
62
|
-
npm install vee-validate --save
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Vue version support
|
|
66
|
-
|
|
67
|
-
The main v4 version supports Vue 3.x only, for previous versions of Vue, check the following the table
|
|
68
|
-
|
|
69
|
-
| vue Version | vee-validate version | Documentation Link |
|
|
70
|
-
| ----------- | -------------------- | ---------------------------------------------------------------------------------------- |
|
|
71
|
-
| `2.x` | `2.x` or `3.x` | [v2](https://vee-validate.logaretm.com/v2) or [v3](https://vee-validate.logaretm.com/v3) |
|
|
72
|
-
| `3.x` | `4.x`
|
|
73
|
-
|
|
74
|
-
### Usage
|
|
75
|
-
|
|
76
|
-
vee-validate offers two styles to integrate form validation into your Vue.js apps.
|
|
77
|
-
|
|
78
|
-
#### Composition API
|
|
79
|
-
|
|
80
|
-
The fastest way to create a form and manage its validation, behavior, and values is with the composition API.
|
|
81
|
-
|
|
82
|
-
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.
|
|
83
|
-
|
|
84
|
-
```vue
|
|
85
|
-
<script setup>
|
|
86
|
-
import { useForm } from 'vee-validate';
|
|
87
|
-
|
|
88
|
-
// Validation, or use `yup` or `zod`
|
|
89
|
-
function required(value) {
|
|
90
|
-
return value ? true : 'This field is required';
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Create the form
|
|
94
|
-
const { defineField, handleSubmit, errors } = useForm({
|
|
95
|
-
validationSchema: {
|
|
96
|
-
field: required,
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
// Define fields
|
|
101
|
-
const [field, fieldProps] = defineField('field');
|
|
102
|
-
|
|
103
|
-
// Submit handler
|
|
104
|
-
const onSubmit = handleSubmit(values => {
|
|
105
|
-
// Submit to API
|
|
106
|
-
console.log(values);
|
|
107
|
-
});
|
|
108
|
-
</script>
|
|
109
|
-
|
|
110
|
-
<template>
|
|
111
|
-
<form @submit="onSubmit">
|
|
112
|
-
<input v-model="field" v-bind="fieldProps" />
|
|
113
|
-
<span>{{ errors.field }}</span>
|
|
114
|
-
|
|
115
|
-
<button>Submit</button>
|
|
116
|
-
</form>
|
|
117
|
-
</template>
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
You can do so much more than this, for more info [check the composition API documentation](https://vee-validate.logaretm.com/
|
|
121
|
-
|
|
122
|
-
#### Declarative Components
|
|
123
|
-
|
|
124
|
-
Higher-order components can also be used to build forms. Register the `Field` and `Form` components and create a simple `required` validator:
|
|
125
|
-
|
|
126
|
-
```vue
|
|
127
|
-
<script setup>
|
|
128
|
-
import { Field, Form } from 'vee-validate';
|
|
129
|
-
|
|
130
|
-
// Validation, or use `yup` or `zod`
|
|
131
|
-
function required(value) {
|
|
132
|
-
return value ? true : 'This field is required';
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Submit handler
|
|
136
|
-
function onSubmit(values) {
|
|
137
|
-
// Submit to API
|
|
138
|
-
console.log(values);
|
|
139
|
-
}
|
|
140
|
-
</script>
|
|
141
|
-
|
|
142
|
-
<template>
|
|
143
|
-
<Form v-slot="{ errors }" @submit="onSubmit">
|
|
144
|
-
<Field name="field" :rules="required" />
|
|
145
|
-
|
|
146
|
-
<span>{{ errors.field }}</span>
|
|
147
|
-
|
|
148
|
-
<button>Submit</button>
|
|
149
|
-
</Form>
|
|
150
|
-
</template>
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
The `Field` component renders an `input` of type `text` by default but you can [control that](https://vee-validate.logaretm.com/
|
|
154
|
-
|
|
155
|
-
## 📚 Documentation
|
|
156
|
-
|
|
157
|
-
Read the [documentation and demos](https://vee-validate.logaretm.com/v4).
|
|
158
|
-
|
|
159
|
-
## Contributing
|
|
160
|
-
|
|
161
|
-
You are welcome to contribute to this project, but before you do, please make sure you read the [contribution guide](/CONTRIBUTING.md).
|
|
162
|
-
|
|
163
|
-
## Credits
|
|
164
|
-
|
|
165
|
-
- Inspired by Laravel's [validation syntax](https://laravel.com/docs/5.4/validation)
|
|
166
|
-
- v4 API Inspired by [Formik's](https://github.com/formium/formik)
|
|
167
|
-
- Nested path types by [react-hook-form](https://github.com/react-hook-form/react-hook-form)
|
|
168
|
-
- Logo by [Baianat](https://github.com/baianat)
|
|
169
|
-
|
|
170
|
-
## Emeriti
|
|
171
|
-
|
|
172
|
-
Here we honor past contributors and sponsors who have been a major part on this project.
|
|
173
|
-
|
|
174
|
-
- [Baianat](https://github.com/baianat).
|
|
175
|
-
|
|
176
|
-
## ⚖️ License
|
|
177
|
-
|
|
178
|
-
Released under [MIT](/LICENSE) by [@logaretm](https://github.com/logaretm).
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://vee-validate.logaretm.com" target="_blank">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/logaretm/vee-validate/main/logo.png" width="200" title="Go to website">
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
Painless Vue forms
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
|
|
13
|
+
<a target="_blank" href="https://www.npmjs.com/package/vee-validate">
|
|
14
|
+
<img src="https://img.shields.io/npm/v/vee-validate.svg?label=&color=05bda8">
|
|
15
|
+
</a>
|
|
16
|
+
|
|
17
|
+
<a target="_blank" href="https://npm-stat.com/charts.html?package=vee-validate">
|
|
18
|
+
<img src="https://img.shields.io/npm/dm/vee-validate.svg?color=05bd6d&label=">
|
|
19
|
+
</a>
|
|
20
|
+
|
|
21
|
+
<a href="https://vee-validate.logaretm.com/v5/" target="_blank">
|
|
22
|
+
<img src="https://img.shields.io/badge/-docs%20and%20demos-009f53">
|
|
23
|
+
</a>
|
|
24
|
+
|
|
25
|
+
<a href="https://github.com/sponsors/logaretm">
|
|
26
|
+
<img src="https://img.shields.io/badge/-%E2%99%A5%20Sponsors-ec5cc6">
|
|
27
|
+
|
|
28
|
+
</a>
|
|
29
|
+
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<br>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="https://github.com/sponsors/logaretm">
|
|
36
|
+
<img src='https://sponsors.logaretm.com/sponsors.svg'>
|
|
37
|
+
</a>
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
<br>
|
|
41
|
+
|
|
42
|
+
## Features
|
|
43
|
+
|
|
44
|
+
- **🍞 Easy:** Declarative validation that is familiar and easy to setup
|
|
45
|
+
- **🧘♀️ Flexible:** Synchronous, Asynchronous, field-level or form-level validation
|
|
46
|
+
- **⚡️ Fast:** Build faster forms faster with intuitive API and small footprint
|
|
47
|
+
- **🏏 Minimal:** Only handles the complicated form concerns, gives you full control over everything else
|
|
48
|
+
- **😎 UI Agnostic:** Works with native HTML elements or your favorite UI library components
|
|
49
|
+
- **🦾 Progressive:** Works whether you use Vue.js as a progressive enhancement or in a complex setup
|
|
50
|
+
- **✅ Built-in Rules:** Companion lib with 25+ Rules that covers most needs in most web applications
|
|
51
|
+
- **🌐 i18n:** 45+ locales for built-in rules contributed by developers from all over the world
|
|
52
|
+
|
|
53
|
+
## Getting Started
|
|
54
|
+
|
|
55
|
+
### Installation
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
# Install with yarn
|
|
59
|
+
yarn add vee-validate
|
|
60
|
+
|
|
61
|
+
# Install with npm
|
|
62
|
+
npm install vee-validate --save
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Vue version support
|
|
66
|
+
|
|
67
|
+
The main v4 version supports Vue 3.x only, for previous versions of Vue, check the following the table
|
|
68
|
+
|
|
69
|
+
| vue Version | vee-validate version | Documentation Link |
|
|
70
|
+
| ----------- | -------------------- | ---------------------------------------------------------------------------------------- |
|
|
71
|
+
| `2.x` | `2.x` or `3.x` | [v2](https://vee-validate.logaretm.com/v2) or [v3](https://vee-validate.logaretm.com/v3) |
|
|
72
|
+
| `3.x` | `4.x` or `5.x` | [v4](https://vee-validate.logaretm.com/v4) or [v5](https://vee-validate.logaretm.com/v5) |
|
|
73
|
+
|
|
74
|
+
### Usage
|
|
75
|
+
|
|
76
|
+
vee-validate offers two styles to integrate form validation into your Vue.js apps.
|
|
77
|
+
|
|
78
|
+
#### Composition API
|
|
79
|
+
|
|
80
|
+
The fastest way to create a form and manage its validation, behavior, and values is with the composition API.
|
|
81
|
+
|
|
82
|
+
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.
|
|
83
|
+
|
|
84
|
+
```vue
|
|
85
|
+
<script setup>
|
|
86
|
+
import { useForm } from 'vee-validate';
|
|
87
|
+
|
|
88
|
+
// Validation, or use `yup` or `zod`
|
|
89
|
+
function required(value) {
|
|
90
|
+
return value ? true : 'This field is required';
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Create the form
|
|
94
|
+
const { defineField, handleSubmit, errors } = useForm({
|
|
95
|
+
validationSchema: {
|
|
96
|
+
field: required,
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Define fields
|
|
101
|
+
const [field, fieldProps] = defineField('field');
|
|
102
|
+
|
|
103
|
+
// Submit handler
|
|
104
|
+
const onSubmit = handleSubmit(values => {
|
|
105
|
+
// Submit to API
|
|
106
|
+
console.log(values);
|
|
107
|
+
});
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<template>
|
|
111
|
+
<form @submit="onSubmit">
|
|
112
|
+
<input v-model="field" v-bind="fieldProps" />
|
|
113
|
+
<span>{{ errors.field }}</span>
|
|
114
|
+
|
|
115
|
+
<button>Submit</button>
|
|
116
|
+
</form>
|
|
117
|
+
</template>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
You can do so much more than this, for more info [check the composition API documentation](https://vee-validate.logaretm.com/v5/guide/composition-api/getting-started/).
|
|
121
|
+
|
|
122
|
+
#### Declarative Components
|
|
123
|
+
|
|
124
|
+
Higher-order components can also be used to build forms. Register the `Field` and `Form` components and create a simple `required` validator:
|
|
125
|
+
|
|
126
|
+
```vue
|
|
127
|
+
<script setup>
|
|
128
|
+
import { Field, Form } from 'vee-validate';
|
|
129
|
+
|
|
130
|
+
// Validation, or use `yup` or `zod`
|
|
131
|
+
function required(value) {
|
|
132
|
+
return value ? true : 'This field is required';
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Submit handler
|
|
136
|
+
function onSubmit(values) {
|
|
137
|
+
// Submit to API
|
|
138
|
+
console.log(values);
|
|
139
|
+
}
|
|
140
|
+
</script>
|
|
141
|
+
|
|
142
|
+
<template>
|
|
143
|
+
<Form v-slot="{ errors }" @submit="onSubmit">
|
|
144
|
+
<Field name="field" :rules="required" />
|
|
145
|
+
|
|
146
|
+
<span>{{ errors.field }}</span>
|
|
147
|
+
|
|
148
|
+
<button>Submit</button>
|
|
149
|
+
</Form>
|
|
150
|
+
</template>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
The `Field` component renders an `input` of type `text` by default but you can [control that](https://vee-validate.logaretm.com/v5/api/field#rendering-fields)
|
|
154
|
+
|
|
155
|
+
## 📚 Documentation
|
|
156
|
+
|
|
157
|
+
Read the [documentation and demos](https://vee-validate.logaretm.com/v4).
|
|
158
|
+
|
|
159
|
+
## Contributing
|
|
160
|
+
|
|
161
|
+
You are welcome to contribute to this project, but before you do, please make sure you read the [contribution guide](/CONTRIBUTING.md).
|
|
162
|
+
|
|
163
|
+
## Credits
|
|
164
|
+
|
|
165
|
+
- Inspired by Laravel's [validation syntax](https://laravel.com/docs/5.4/validation)
|
|
166
|
+
- v4 API Inspired by [Formik's](https://github.com/formium/formik)
|
|
167
|
+
- Nested path types by [react-hook-form](https://github.com/react-hook-form/react-hook-form)
|
|
168
|
+
- Logo by [Baianat](https://github.com/baianat)
|
|
169
|
+
|
|
170
|
+
## Emeriti
|
|
171
|
+
|
|
172
|
+
Here we honor past contributors and sponsors who have been a major part on this project.
|
|
173
|
+
|
|
174
|
+
- [Baianat](https://github.com/baianat).
|
|
175
|
+
|
|
176
|
+
## ⚖️ License
|
|
177
|
+
|
|
178
|
+
Released under [MIT](/LICENSE) by [@logaretm](https://github.com/logaretm).
|