Escrito por: Eduardo Gonçalves Souza
Publicado em: 21/03/2025
Última atualização: 21/03/2025
Caso esteja iniciando no Vue.js, um dos primeiros conceitos que precisa dominar são as diretivas. Elas são instruções especiais que expandem as funcionalidades quando inseridas no HTML, possibilitando a criação de interfaces mais dinâmicas e reativas de maneira simples. No Vue.js, as diretivas são marcadas com o prefixo v-
e têm a função de implementar comportamentos específicos nos elementos.
Com elas, é possível controlar a exibição de elementos, vincular dados de forma reativa, lidar com eventos e até criar interações condicionais sem a necessidade de modificar diretamente a estrutura da página.
Agora que você compreende o significado e a relevância das diretivas, vamos explorar as diretivas nativas presentes no Vue.js e como implementá-las na prática.
O Vue.js disponibiliza uma gama de diretivas integradas para realizar operações comuns. Aqui estão alguns exemplos das diretivas mais utilizadas:
v-bind
: Possibilita a alteração dinâmica de atributos ou propriedades de elementos HTML.v-model
: Facilita a criação de formulários ao permitir a vinculação de dados bidirecional. Com ela, as informações inseridas nos campos de entrada são automaticamente sincronizadas com o estado da aplicação.v-on
: Permite a manipulação de eventos JavaScript dentro do Vue.js, ligando as ações do usuário à lógica do programa.v-for
: É usada para exibir listas de forma dinâmica. Ela permite percorrer arrays ou objetos e criar automaticamente um elemento para cada item.v-if
: Permite a inclusão ou exclusão dinâmica de elementos com base em condições. Gerencia a renderização ao inserir ou eliminar elementos.v-show
: Controla a visibilidade de elementos com base em condições. Ao contrário do v-if
, que insere ou elimina elementos do DOM, v-show
apenas altera a visibilidade via CSS (display: none
).O v-bind
é utilizado para ligar um valor a uma tag HTML, estabelecendo uma ligação entre os valores. Na prática, sua sintaxe é simples. Veja um exemplo:
<template>
<a v-bind:href="url">Visite nosso site</a>
</template>
<script setup>
import { ref } from "vue";
const url = ref("https://codigoaoponto.com/");
</script>
No código acima, vinculamos a variável url
à tag <a>
, garantindo que o valor da variável seja inserido no atributo href
. Se o valor da variável url
mudar, o valor do atributo href
também será atualizado automaticamente.
O v-model
é utilizado para vincular uma variável da aplicação ao valor de um elemento <input>
no template. Ele funciona de forma bidirecional, ou seja, qualquer alteração na variável refletirá no input, e qualquer mudança no input atualizará a variável automaticamente. Veja um exemplo:
<template>
<input v-model="nome" type="text" />
<div>Olá! Meu nome é {{ nome }}</div>
</template>
<script setup>
import { ref } from "vue";
const nome = ref("Teste");
</script>
No código acima, associamos a variável nome
à tag <input>
, garantindo sua reatividade e criando um campo de entrada com vinculação bidirecional!
O v-on
é a diretiva usada para manipular eventos dentro do Vue.js, geralmente utilizada para realizar ações como cliques em botões, envio de formulários ou foco em elementos. Veja um exemplo:
<template>
<input v-model="nome" type="text" />
<div>Olá! Meu nome é {{ nome }}</div>
<button v-on:click="resetar">Resetar</button>
</template>
<script setup>
import { ref } from "vue";
const nome = ref("Teste");
function resetar() {
nome.value = "";
}
</script>
No código acima, ao clicar no botão, a função resetar
será acionada e redefinirá o valor da variável nome
para uma string vazia.
O v-for
funciona de maneira semelhante ao loop for
do JavaScript. Ele permite percorrer uma lista, array ou objeto e gerar um elemento dinamicamente para cada item. Veja um exemplo:
<template>
<ul>
<li v-for="(nome, index) in nomes" v-bind:key="index">
{{ nome }}
</li>
</ul>
</template>
<script setup>
const nomes = ["Código ao Ponto", "Eduardo", "Thiago", "Ricardo", "Cleiton"];
</script>
No código acima, estamos criando uma lista de nomes baseada em um array. O v-bind:key
é essencial ao usar v-for
, pois fornece uma identificação única para cada elemento da lista, facilitando o rastreamento e o gerenciamento dos elementos.
O v-if
e v-else
permitem a inclusão ou exclusão de elementos com base em uma condição. Veja um exemplo:
<template>
<div>
<input v-model="nome" type="text" />
<div v-if="nome">Olá! Meu nome é {{ nome }}</div>
<div v-else>Por favor, digite seu nome.</div>
<button v-on:click="reset">Resetar</button>
</div>
</template>
<script setup>
import { ref } from "vue";
const nome = ref("");
function reset() {
nome.value = "";
}
</script>
O v-show
controla a visibilidade de um elemento sem removê-lo do DOM. Veja um exemplo:
<template>
<div>
<input v-model="nome" type="text" />
<div>Olá! Meu nome é {{ nome }}</div>
<div v-show="nome.length > 10">Seu nome é muito longo!</div>
</div>
</template>
<script setup>
import { ref } from "vue";
const nome = ref("");
</script>
Agora que você está familiarizado com as principais diretivas do Vue.js, como v-if
, v-else
, v-show
, v-for
, v-bind
e v-on
, pode aplicar esses conceitos para desenvolver aplicações mais dinâmicas e eficientes!