Módulo: Formularios
Este módulo forma parte del curso de Vuejs. Incluye 1 lecciones y 1 ejercicios de programación .
En esta lección, exploraremos cómo trabajar con formularios y validación en Vue 3.5. La gestión adecuada de formularios y su validación son aspectos esenciales en el desarrollo de aplicaciones web. Vue 3.5 ofrece una serie de herramientas y técnicas para facilitar estas tareas.
Creación de formularios en Vue 3.5
Para empezar, vamos a crear un formulario básico en Vue 3.5. Utilizaremos v-model
para enlazar datos y @submit.prevent
para manejar la presentación del formulario:
<template>
<form @submit.prevent="submitForm">
<div>
<label for="name">Nombre:</label>
<input type="text" id="name" v-model="name" />
</div>
<div>
<label for="email">Email:</label>
<input type="email" id="email" v-model="email" />
</div>
<button type="submit">Enviar</button>
</form>
</template>
<script>
export default {
data() {
return {
name: '',
email: ''
};
},
methods: {
submitForm() {
console.log('Nombre:', this.name);
console.log('Email:', this.email);
}
}
};
</script>
En este ejemplo, el formulario está compuesto por dos campos: nombre y email. Utilizamos v-model
para enlazar cada campo a una propiedad del objeto data
de Vue. La directiva @submit.prevent
evita el comportamiento por defecto del formulario y llama al método submitForm
cuando se envía el formulario.
Validación de formularios
Vue 3.5 no incluye un sistema de validación integrado, pero podemos utilizar bibliotecas externas como Vuelidate o vuelidate-next para añadir validaciones. A continuación, mostraremos un ejemplo utilizando Vuelidate:
Instalación de Vuelidate
Primero, instalamos Vuelidate:
npm install @vuelidate/core @vuelidate/validators
Integración de Vuelidate en el formulario
Ahora, integremos Vuelidate en nuestro formulario:
<template>
<form @submit.prevent="submitForm">
<div>
<label for="name">Nombre:</label>
<input type="text" id="name" v-model="name" />
<span v-if="!$v.name.required">El nombre es requerido</span>
</div>
<div>
<label for="email">Email:</label>
<input type="email" id="email" v-model="email" />
<span v-if="!$v.email.required">El email es requerido</span>
<span v-if="!$v.email.email">El email no es válido</span>
</div>
<button type="submit">Enviar</button>
</form>
</template>
<script>
import { required, email } from '@vuelidate/validators'
import useVuelidate from '@vuelidate/core'
export default {
data() {
return {
name: '',
email: ''
};
},
validations() {
return {
name: { required },
email: { required, email }
};
},
setup() {
return { v$: useVuelidate() };
},
methods: {
submitForm() {
this.v$.$touch();
if (this.v$.$invalid) {
console.log('Formulario inválido');
return;
}
console.log('Nombre:', this.name);
console.log('Email:', this.email);
}
}
};
</script>
En este ejemplo, hemos añadido validación para los campos de nombre y email. La validación se realiza utilizando las reglas required
y email
de Vuelidate. La directiva v-if
se usa para mostrar mensajes de error cuando los campos no cumplen con las reglas de validación.
Vue 3.5 y Vuelidate juntos proporcionan una manera efectiva de gestionar formularios y validación en aplicaciones web, asegurando que los datos ingresados por los usuarios sean correctos y completos.
Ejercicios de programación
Otros módulos de este curso
Formularios
Lecciones de este módulo
Explora todas las lecciones disponibles en Formularios
Todos los módulos del curso
Navega entre los módulos de Vuejs
Explora más sobre Vuejs
Descubre más recursos de Vuejs

Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Vuejs es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.