Event Handling dengan v-on

Menangani event dengan @click, method vs inline handler, argumen & $event, modifier (.prevent, .stop, .once), dan modifier tombol keyboard.

Part 5 dari 25 ± 45 menit Gratis

Mendengarkan event

Directive v-on (singkatannya @) memasang event listener pada elemen. Event yang bisa didengar sama dengan event DOM biasa: click, input, submit, keyup, mouseover, dan seterusnya.

<button v-on:click="tambah">+</button>
<button @click="tambah">+</button>      <!-- singkat, dipakai sehari-hari -->

Dua jenis handler

JenisContohKapan
Method handler@click="tambah"Logika lebih dari satu baris
Inline handler@click="jumlah++"Satu pernyataan singkat
<button @click="jumlah++">+1</button>
<button @click="tambah(5)">+5</button>    <!-- memanggil dengan argumen -->

function tambah(n) { jumlah.value += n }

Perhatikan: @click="tambah" (tanpa kurung) memberi referensi fungsi; Vue memanggilnya saat event terjadi dan memberikan objek event sebagai argumen. @click="tambah(5)" adalah inline handler yang dijalankan saat klik.

Mengakses objek event

<input @input="ketik">
function ketik(event) {
  console.log(event.target.value)
}

<!-- di inline handler gunakan $event -->
<button @click="kirim('halo', $event)">Kirim</button>

Event modifier

Modifier adalah akhiran bertitik yang mengubah perilaku event tanpa kamu menulis event.preventDefault() manual.

ModifierFungsi
.preventevent.preventDefault() — mis. mencegah form me-reload halaman
.stopevent.stopPropagation() — hentikan event naik ke elemen induk
.onceHandler hanya jalan sekali
.selfHanya jika target langsung elemen itu
.captureTangkap di fase capture
.passiveOptimasi scroll/touch
<form @submit.prevent="kirim">...</form>
<a @click.stop="buka">...</a>
<button @click.once="sekali">Sekali saja</button>

Modifier tombol keyboard

<input @keyup.enter="simpan">
<input @keyup.esc="batal">
<input @keydown.ctrl.s.prevent="simpan">   <!-- kombinasi -->

Alias yang tersedia: .enter, .tab, .delete, .esc, .space, .up, .down, .left, .right; juga modifier sistem .ctrl, .alt, .shift, .meta.

Urutan modifier berpengaruh: @click.prevent.self mencegah default pada semua klik, sedangkan @click.self.prevent hanya pada klik langsung ke elemen itu.

Kesalahan umum

  • Lupa .prevent pada form sehingga halaman ter-reload saat submit.
  • Menulis onclick="..." bergaya HTML lama — di Vue pakai @click.
  • Menaruh logika berat langsung di atribut event. Pindahkan ke method agar mudah dibaca dan diuji.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X