🚀 Capítulo 03: Diretivas - Comandos da Força
🎯 Objetivo da Aula
Ao final desta aula, você entenderá o que são as Diretivas no Vue.js e saberá como usar o v-bind para alterar atributos HTML e o v-on para escutar eventos (como cliques de botão).
🏢 O Cenário Prático (Seu Desafio)
Para pilotar a nave, você precisa enviar comandos! Seu desafio hoje é ligar os sistemas da nave usando as diretivas do Vue. Você precisará desabilitar um botão quando o combustível estiver zerado e disparar um alerta quando o botão de hiperdrive for clicado!
🧠 Fundamentos: A Teoria Traduzida
As Diretivas são atributos especiais que colocamos nas tags HTML com o prefixo v-. Elas dizem ao Vue para fazer algo com aquele elemento.
As duas mais importantes para começar são:
1. v-bind (ou apenas :)
Serve para ligar uma variável do JavaScript a um atributo do HTML.
- Exemplo: Se você quer mudar o link de uma imagem ou desabilitar um botão dinamicamente.
- Forma Curta: Em vez de escrever
v-bind:disabled="valor", você pode escrever apenas:disabled="valor".
2. v-on (ou apenas @)
Serve para escutar os eventos do HTML (como clique, passar o mouse, digitar).
- Exemplo: Rodar uma função quando o usuário clica em um botão.
- Forma Curta: Em vez de escrever
v-on:click="funcao", você pode escrever apenas@click="funcao".
📖 Exemplo Guiado: Painel de Controle
Vamos usar as duas diretivas no App.vue.
🛠️ Passo a Passo
Abra o arquivo src/App.vue e altere o código:
<template>
<div>
<h1>🎛️ Painel de Controle</h1>
<!-- Usando v-bind (forma curta ':') para desabilitar o botão -->
<button :disabled="sistemaBloqueado">Lançar Míssil</button>
<hr />
<!-- Usando v-on (forma curta '@') para escutar o clique -->
<button @click="ligarHiperdrive">Acionar Hiperdrive</button>
</div>
</template>
<script setup>
const sistemaBloqueado = true; // Se for true, o botão fica cinza
function ligarHiperdrive() {
alert('🚀 Hiperdrive ativado! Fazendo salto no hiperespaço!');
}
</script>🕹️ Como Executar e Testar no VS Code
- Salve o arquivo e veja o navegador.
- O botão “Lançar Míssil” estará bloqueado porque
sistemaBloqueadoétrue. - O botão “Acionar Hiperdrive” abrirá o alerta quando clicado!
🛠️ Prática Obrigatória 1
Mude o valor de sistemaBloqueado para false no seu código e veja o botão de míssil ser liberado!
🛠️ Prática Obrigatória 2
Crie uma nova função chamada dispararLaser que mostre um alerta escrito ”💥 Pew Pew!“. Use o @click para ligar essa função a um novo botão.
🔑 Gabarito de Código/Fórmulas
Prática 2:
No <template>:
<button @click="dispararLaser">Disparar Laser</button>No <script setup>:
function dispararLaser() {
alert('💥 Pew Pew!');
}