Frontend Academy · Les

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.

Les 3 van 413 stappen

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).

Gratis beginnen

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

  1. Vue SFC: script template style
  2. Options API: data methods computed
  3. Directives: v-if v-for v-bind v-on
  4. Componentprops en emits
← Terug naar Frontend Academy