I’ve found myself using VeeValidate library in the Masterclass of VueSchool.io .
While they taught the course in JavaScript, I decided to complete it in TypeScript. What a challenge!
At one point, we had to import the Form
and Field
component of the library the following way using JavaScript and the Options API:
1
2
3
4
5
6
import { Form , Field } from "vee-validate" ;
export default {
components : {
VeeForm : Form ,
VeeField : Field ,
}
Copy But, how do you do it using TypeScript in the Composition API?
Simple: use the import aliases.
1
import { Form as VeeForm , Field as VeeField } from "vee-validate" ;
Copy While you could have used the same with the Options API, you must use this technique with the Composition API to:
Follow the style guide rules of Vue
Name the library component as you wish.
Then, I could use the components in the template:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
< template >
< vee - form @ submit = "register" class = "card card-form" >
< h1 class = "text-center" > Register </ h1 >
< div class = "form-group push-top" >
< label for = "name" > Full Name </ label >
< vee - field
name = "name"
v - model = "form.name"
id = "name"
type = "text"
class = "form-input"
/>
</ div >
< div class = "form-group" >
< label for = "email" > Email </ label >
< vee - field
name = "email"
v - model = "form.email"
id = "email"
type = "email"
class = "form-input"
/>
</ div >
< div class = "form-group" >
< label for = "password" > Password </ label >
< vee - field
name = "password"
v - model = "form.password"
id = "password"
type = "password"
class = "form-input"
/>
</ div >
< label for = "username" > Username </ label >
< vee - field
name = "username"
v - model = "form.username"
id = "username"
type = "text"
class = "form-input"
/>
</ div >
< div class = "form-actions" >
< button type = "submit" class = "btn-blue btn-block" > Register </ button >
</ div >
< /vee-form>
</ template >
Copy