Directives: v-if v-for v-bind v-on
Render conditioneel met v-if en v-show, herhaal met v-for, bind attributen dynamisch met v-bind en luister naar DOM-events met v-on.
Directives: v-if v-for v-bind v-on is een gratis Frontend Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Frontend Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Frontend Academy bevat in totaal 4 lessen.
Wat zijn Vue-directives
Directives zijn speciale attributen met het voorvoegsel v- die Vue vertellen dat het iets met een DOM-element moet doen. Ze worden geëvalueerd als JavaScript-expressies en reageren op wijzigingen in reactieve data.
v-if, v-else-if, v-else
v-if geeft een element voorwaardelijk weer op basis van een waarheidsgetrouwe expressie. Wanneer de waarde onwaar is, wordt het element volledig uit de DOM verwijderd. v-else biedt de terugvaloptie.
<div v-if="isLoggedIn">
<UserDashboard />
</div>
<div v-else-if="isLoading">
<Spinner />
</div>
<div v-else>
<LoginForm />
</div>v-show — Zichtbaarheid schakelen
v-show schakelt CSS display: none in plaats van het element aan de DOM toe te voegen of eruit te verwijderen. Gebruik v-show wanneer de zichtbaarheid vaak wordt geschakeld; gebruik v-if wanneer de voorwaarde zelden verandert.
<!-- Good for frequently toggling: -->
<div v-show="isDropdownOpen">...</div>
<!-- Good for rarely changing: -->
<div v-if="userHasPremium">...</div>v-for — Lijsten weergeven
v-for="item in items" geeft het element voor elk item weer. Voeg altijd :key toe voor stabiele updates.
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }} — {{ user.email }}
</li>
</ul>
<!-- With index: -->
<li v-for="(item, index) in items" :key="item.id">
{{ index + 1 }}. {{ item.title }}
</li>v-for met een object
Doorloop de waarden van een object of de sleutel-waardeparen.
<dl>
<template v-for="(value, key) in user" :key="key">
<dt>{{ key }}</dt>
<dd>{{ value }}</dd>
</template>
</dl>v-bind — Attributen koppelen
v-bind:attr of de verkorte vorm :attr koppelt een HTML-attribuut dynamisch aan een reactieve waarde.
<img :src="user.avatar" :alt="user.name">
<a :href="getLink(post.id)">{{ post.title }}</a>
<button :disabled="isLoading" :class="{ active: isActive }">Save</button>Objectsyntaxis van v-bind
Koppel meerdere attributen tegelijk met behulp van een object.
<input v-bind="{
type: 'email',
placeholder: 'Enter email',
disabled: isSubmitting
}">Klassen koppelen: :class
Koppel CSS-klassen voorwaardelijk met een object (sleutel = klassenaam, waarde = voorwaarde) of met een array.
<div :class="{ 'is-active': isActive, 'has-error': hasError }">...</div>
<!-- Array syntax: -->
<div :class="[baseClass, isActive ? 'active' : '']">
<!-- Dynamic in script setup: -->
:class="{ card: true, [variantClass]: true }"Stijlen koppelen: :style
Koppel inline-stijlen met een camelCase-object.
<div :style="{ backgroundColor: brandColor, padding: spacing + 'px' }">v-on — Naar gebeurtenissen luisteren
v-on:event of de verkorte vorm @event koppelt gebeurtenislisteners.
<button @click="handleClick">Click Me</button>
<input @input="value = $event.target.value">
<form @submit.prevent="handleSubmit">...</form>Gebeurtenismodifiers
Vue biedt ingebouwde gebeurtenismodifiers: .prevent (preventDefault), .stop (stopPropagation), .once (wordt één keer uitgevoerd), .self (alleen als het doel het element zelf is) en .passive (verbetert de scrollprestaties).
<form @submit.prevent="submit">
<button @click.stop="selectItem">
<div @click.self="closeModal">
<div @scroll.passive="onScroll">Snelle controle
Wanneer gebruik je v-show in plaats van v-if?
Samenvatting: Vue-directives
v-if verwijdert elementen uit de DOM of voegt ze eraan toe. v-show schakelt de weergave in en uit. v-for geeft lijsten weer (altijd :key). v-bind (:) koppelt attributen, :class en :style. v-on (@) koppelt gebeurtenislisteners. Gebeurtenismodifiers .prevent, .stop en .once. v-model voor een tweezijdige koppeling (combineert v-bind:value en v-on:input).
Leer HTML met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 41
- Lessen
- 163
Veelgestelde vragen
Is de les “Directives: v-if v-for v-bind v-on” gratis?
Ja — de volledige tekst van “Directives: v-if v-for v-bind v-on” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Frontend Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Frontend Academy bevat in totaal 4 lessen.
Wat leer ik in “Directives: v-if v-for v-bind v-on”?
Render conditioneel met v-if en v-show, herhaal met v-for, bind attributen dynamisch met v-bind en luister naar DOM-events met v-on. Je oefent met Frontend Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Frontend Academy te beginnen?
Ervaring vooraf is niet nodig. Frontend Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Directives: v-if v-for v-bind v-on”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Frontend Academy?
Ja. Elke les over Frontend Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Vue SFC: script template style
- Options API: data methods computed
- Directives: v-if v-for v-bind v-on
- Componentprops en emits