Formulários Vue.js e vinculação de entrada
Formulários são uma parte essencial de aplicativos da web, permitindo que os usuários insiram e enviem dados. O Vue.js simplifica o manuseio de formulários e vinculação de entrada ao fornecer uma maneira intuitiva de gerenciar a entrada do usuário e sincronizá-la com os dados do seu aplicativo. Este artigo o guiará pelos conceitos básicos de trabalho com formulários e vinculação de entrada no Vue.js.
Noções básicas de vinculação de entrada
No Vue.js, a vinculação de dados bidirecional para entradas de formulário é obtida usando a diretiva v-model
. Essa diretiva vincula o valor de um elemento de entrada a uma propriedade de dados, garantindo que quaisquer alterações na entrada sejam refletidas nos dados e vice-versa.
<template>
<div>
<input v-model="message" placeholder="Type something"/>
<p>Message: {{ message }}</p>
</div>
</template>
<script>
export default {
data() {
return {
message: ''
};
}
};
</script>
Neste exemplo, a diretiva v-model
vincula o valor do campo de entrada à propriedade de dados message
. Qualquer texto inserido no campo de entrada é imediatamente refletido na propriedade message
e exibido no parágrafo.
Trabalhando com diferentes tipos de entrada
A diretiva v-model
funciona com vários tipos de entrada, incluindo campos de texto, caixas de seleção, botões de opção e menus suspensos de seleção. Veja como usar v-model
com diferentes tipos de entrada:
- Entrada de texto:
<input type="text" v-model="text" />
- Caixa de seleção:
<input type="checkbox" v-model="checked" />
- Botões de rádio:
<input type="radio" v-model="selected" value="option1" />
- Selecione o menu suspenso:
<select v-model="selected"> <option value="option1">Option 1</option> </select>
Manipulando o envio do formulário
Para manipular envios de formulários, você pode usar o ouvinte de evento @submit
em um elemento <form>
. Aqui está um exemplo simples de como manipular envios de formulários no Vue.js:
<template>
<form @submit.prevent="submitForm">
<input v-model="username" placeholder="Enter your username"/>
<button type="submit">Submit</button>
</form>
</template>
<script>
export default {
data() {
return {
username: ''
};
},
methods: {
submitForm() {
alert('Form submitted with username: ' + this.username);
}
}
};
</script>
Neste exemplo, a diretiva @submit.prevent
escuta o evento submit do formulário e previne a ação padrão. O método submitForm
é chamado, o que exibe um alerta com o nome de usuário enviado.
Usando validação de formulário
Validar entradas de formulário é uma parte essencial do manuseio de formulários. Embora o Vue.js não forneça validação interna, você pode usar métodos personalizados ou bibliotecas de terceiros como VeeValidate para manipular a validação. Aqui está um exemplo básico de como você pode implementar um método de validação simples:
<template>
<form @submit.prevent="validateForm">
<input v-model="email" placeholder="Enter your email"/>
<span v-if="!isEmailValid">Invalid email address</span>
<button type="submit">Submit</button>
</form>
</template>
<script>
export default {
data() {
return {
email: '',
isEmailValid: true
};
},
methods: {
validateForm() {
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
this.isEmailValid = emailPattern.test(this.email);
if (this.isEmailValid) {
alert('Form submitted with email: ' + this.email);
}
}
}
};
</script>
Neste exemplo, o método validateForm
verifica se o endereço de e-mail corresponde a um padrão de expressão regular. Se o e-mail for válido, ele envia o formulário; caso contrário, ele mostra uma mensagem de erro.
Conclusão
Entender os formulários Vue.js e a vinculação de entrada é crucial para construir aplicativos da web interativos e orientados a dados. Ao aproveitar a diretiva v-model
e manipular envios de formulários, você pode gerenciar com eficiência a entrada do usuário e criar formulários dinâmicos. Com essas técnicas, você está bem equipado para manipular uma variedade de tarefas relacionadas a formulários em seus aplicativos Vue.js.