Noções básicas sobre diretivas Vue.js
As diretivas do Vue.js são tokens especiais na marcação que dizem à biblioteca para fazer algo com um elemento DOM. Elas são prefixadas com v-
para indicar que são atributos especiais fornecidos pelo Vue. As diretivas são um dos principais recursos do Vue.js, permitindo que os desenvolvedores manipulem o DOM de forma eficiente.
Neste artigo, exploraremos os conceitos básicos das diretivas do Vue.js, abordando as diretivas mais comumente usadas e como usá-las em seus aplicativos Vue.
Diretivas comumente usadas em Vue.js
Aqui estão algumas das diretivas mais comumente usadas no Vue.js:
- v-bind: Vincula dinamicamente um ou mais atributos ou uma propriedade de componente a uma expressão.
- v-model: Cria vinculação de dados bidirecional em elementos de entrada de formulário, textarea e seleção.
- v-if: Renderiza condicionalmente um elemento ou componente.
- v-else: Fornece um bloco else para
v-if
. - v-else-if: Fornece um bloco else-if para
v-if
. - v-for: Renderiza uma lista de itens usando uma matriz ou objeto.
- v-on: Anexa ouvintes de eventos aos elementos.
- v-show: Alterna a visibilidade de um elemento com base em uma expressão.
- v-html: Atualiza o HTML interno de um elemento.
v-bind: Atributos de ligação dinamicamente
A diretiva v-bind
é usada para vincular dinamicamente atributos ou propriedades a uma expressão. Por exemplo, você pode vincular o atributo src
de um elemento img
a uma propriedade de dados:
<template>
<img v-bind:src="imageSrc" alt="Dynamic Image" />
</template>
<script>
export default {
data() {
return {
imageSrc: 'https://example.com/image.jpg'
};
}
};
</script>
A abreviação para v-bind
é simplesmente dois pontos (:
), então o exemplo acima pode ser reescrito como:
<img :src="imageSrc" alt="Dynamic Image" />
v-model: Ligação de dados bidirecional
A diretiva v-model
é usada para criar vinculação de dados bidirecional em elementos de entrada de formulário. Ela mantém o elemento de entrada e a propriedade de dados sincronizados:
<template>
<input v-model="message" placeholder="Type something..." />
<p>You typed: {{ message }}</p>
</template>
<script>
export default {
data() {
return {
message: ''
};
}
};
</script>
v-if, v-else-if e v-else: Renderização Condicional
As diretivas v-if
, v-else-if
e v-else
são usadas para renderização condicional de elementos. Elas permitem que você renderize condicionalmente elementos com base na avaliação de uma expressão:
<template>
<div v-if="isLoggedIn">Welcome back!</div>
<div v-else-if="isGuest">Hello, Guest!</div>
<div v-else>Please log in.</div>
</template>
<script>
export default {
data() {
return {
isLoggedIn: false,
isGuest: true
};
}
};
</script>
v-for: Renderização de lista
A diretiva v-for
é usada para renderizar uma lista de itens iterando sobre um array ou objeto. Cada item no array pode ser renderizado usando um loop:
<template>
<ul>
<li v-for="(item, index) in items" :key="index">{{ item }}</li>
</ul>
</template>
<script>
export default {
data() {
return {
items: ['Item 1', 'Item 2', 'Item 3']
};
}
};
</script>
v-on: Tratamento de eventos
A diretiva v-on
é usada para anexar ouvintes de eventos a elementos DOM. Você pode manipular interações do usuário, como cliques, entrada e mais:
<template>
<button v-on:click="showAlert">Click Me</button>
</template>
<script>
export default {
methods: {
showAlert() {
alert('Button clicked!');
}
}
};
</script>
A abreviação para v-on
é o símbolo de arroba (@
), então o exemplo acima pode ser reescrito como:
<button @click="showAlert">Click Me</button>
v-show: Alternar visibilidade
A diretiva v-show
é usada para alternar a visibilidade de um elemento com base em uma expressão. Diferentemente de v-if
, ela não remove o elemento do DOM; ela apenas alterna a propriedade CSS display
:
<template>
<div v-show="isVisible">This is visible!</div>
</template>
<script>
export default {
data() {
return {
isVisible: true
};
}
};
</script>
v-html: Renderizando HTML
A diretiva v-html
é usada para atualizar o HTML interno de um elemento. Ela é útil quando você precisa renderizar HTML bruto em seus componentes Vue:
<template>
<div v-html="rawHtml"></div>
</template>
<script>
export default {
data() {
return {
rawHtml: '<strong>Bold Text</strong>'
};
}
};
</script>
Conclusão
As diretivas Vue.js fornecem maneiras poderosas de manipular o DOM e criar aplicativos da web dinâmicos e interativos. Entender os conceitos básicos das diretivas Vue.js como v-bind
, v-model
, v-if
, v-for
, v-on
, v-show
e v-html
é essencial para qualquer desenvolvedor Vue. Ao dominar essas diretivas, você pode construir aplicativos mais robustos e ricos em recursos com Vue.js.