0Pricing
Frontend Academy · Pelajaran

Direktif: v-if, v-for, v-bind, v-on

Render secara kondisional dengan v-if dan v-show, lakukan perulangan dengan v-for, ikat atribut secara dinamis dengan v-bind, dan dengarkan event DOM dengan v-on.

Direktif: v-if, v-for, v-bind, v-on adalah pelajaran Frontend Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Frontend Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Frontend Academy mencakup 4 pelajaran total.

Apa Itu Direktif Vue

Direktif adalah atribut khusus yang diawali v- dan memberi tahu Vue untuk melakukan sesuatu pada elemen DOM. Direktif dievaluasi sebagai ekspresi JavaScript dan bereaksi terhadap perubahan data reaktif.

v-if, v-else-if, v-else

v-if merender elemen secara kondisional berdasarkan ekspresi bernilai benar. Elemen tersebut sepenuhnya dihapus dari DOM saat nilainya salah. v-else menyediakan pilihan cadangan.

<div v-if="isLoggedIn">
  <UserDashboard />
</div>
<div v-else-if="isLoading">
  <Spinner />
</div>
<div v-else>
  <LoginForm />
</div>

v-show — Pengalih Visibilitas

v-show mengubah display: none pada CSS, bukan menambahkan atau menghapus elemen dari DOM. Gunakan v-show saat elemen sering ditampilkan dan disembunyikan; gunakan v-if saat kondisinya jarang berubah.

<!-- Good for frequently toggling: -->
<div v-show="isDropdownOpen">...</div>

<!-- Good for rarely changing: -->
<div v-if="userHasPremium">...</div>

v-for — Menampilkan Daftar

v-for="item in items" merender elemen untuk setiap item. Selalu sertakan :key agar pembaruan tetap stabil.

<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 dengan Objek

Ulangi proses untuk nilai-nilai objek atau pasangan kunci-nilai.

<dl>
  <template v-for="(value, key) in user" :key="key">
    <dt>{{ key }}</dt>
    <dd>{{ value }}</dd>
  </template>
</dl>

v-bind — Mengikat Atribut

v-bind:attr atau bentuk singkatnya, :attr, mengikat atribut HTML secara dinamis ke nilai reaktif.

<img :src="user.avatar" :alt="user.name">
<a :href="getLink(post.id)">{{ post.title }}</a>
<button :disabled="isLoading" :class="{ active: isActive }">Save</button>

Sintaks Objek v-bind

Ikat beberapa atribut sekaligus menggunakan objek.

<input v-bind="{
  type: 'email',
  placeholder: 'Enter email',
  disabled: isSubmitting
}">

Pengikatan Kelas: :class

Ikat kelas CSS secara kondisional menggunakan objek (kunci = nama kelas, nilai = kondisi) atau 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 }"

Pengikatan Gaya: :style

Ikat gaya sebaris menggunakan objek camelCase.

<div :style="{ backgroundColor: brandColor, padding: spacing + 'px' }">

v-on — Mendengarkan Peristiwa

v-on:event atau bentuk singkatnya, @event, memasang pendengar peristiwa.

<button @click="handleClick">Click Me</button>
<input @input="value = $event.target.value">
<form @submit.prevent="handleSubmit">...</form>

Pengubah Peristiwa

Vue menyediakan pengubah peristiwa bawaan: .prevent (preventDefault), .stop (stopPropagation), .once (dijalankan sekali), .self (hanya jika targetnya adalah elemen itu sendiri), dan .passive (meningkatkan performa pengguliran).

<form @submit.prevent="submit">
<button @click.stop="selectItem">
<div @click.self="closeModal">
<div @scroll.passive="onScroll">

Cek Cepat

Kapan sebaiknya Anda menggunakan v-show, bukan v-if?

Ringkasan: Direktif Vue

v-if menghapus atau menambahkan elemen ke DOM. v-show mengubah tampilan. v-for merender daftar (selalu gunakan :key). v-bind (:) mengikat atribut, :class, dan :style. v-on (@) memasang pendengar peristiwa. Pengubah peristiwa .prevent, .stop, dan .once. v-model digunakan untuk pengikatan dua arah (menggabungkan v-bind:value dan v-on:input).

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Direktif: v-if, v-for, v-bind, v-on” gratis?

Ya — teks lengkap “Direktif: v-if, v-for, v-bind, v-on” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Frontend Academy, upgrade ke CoddyKit PRO. Kursus Frontend Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Direktif: v-if, v-for, v-bind, v-on”?

Render secara kondisional dengan v-if dan v-show, lakukan perulangan dengan v-for, ikat atribut secara dinamis dengan v-bind, dan dengarkan event DOM dengan v-on. Kamu berlatih Frontend Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Frontend Academy?

Tidak diperlukan pengalaman sebelumnya. Frontend Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Direktif: v-if, v-for, v-bind, v-on” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Frontend Academy ini?

Ya. Setiap pelajaran Frontend Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Vue SFC: script, template, style
  2. Options API: data, methods, computed
  3. Direktif: v-if, v-for, v-bind, v-on
  4. Props dan Emit Komponen
← Kembali ke Frontend Academy