Binding Atribut, Class & Style

v-bind (:) untuk atribut dinamis, atribut boolean, class dengan objek & array, style inline, dan binding banyak atribut sekaligus.

Part 4 dari 25 ± 45 menit Gratis

Masalah: kurung kurawal ganda tidak bisa dipakai di atribut

Interpolasi hanya untuk isi teks. Untuk mengatur atribut (src, href, disabled, class…) dari data, gunakan directive v-bind — yang hampir selalu ditulis singkat dengan titik dua :.

<img v-bind:src="gambar">
<img :src="gambar">           <!-- sama, versi singkat (dipakai sehari-hari) -->
<a :href="tautan">Buka</a>
<img :alt="'Foto ' + nama">    <!-- isi atribut = ekspresi JS -->

Nilai di dalam tanda kutip setelah :atribut= adalah ekspresi JavaScript, bukan teks biasa. Bandingkan: alt="nama" berarti teks "nama", sedangkan :alt="nama" berarti isi variabel nama.

Atribut boolean

Atribut seperti disabled, checked, readonly aktif jika ada, mati jika tidak ada. Dengan bind, nilai truthy menampilkan atribut dan falsy menghapusnya.

<button :disabled="habis">Beli</button>
const habis = ref(true)    // tombol nonaktif

Class binding

Ada tiga bentuk. Semuanya bisa digabung dengan atribut class statis.

<!-- 1. Objek: kunci = nama class, nilai = kondisi -->
<div class="kartu" :class="{ aktif: menyala, redup: !menyala }"></div>

<!-- 2. Array: daftar class -->
<div :class="[kelasUtama, kelasTambahan]"></div>

<!-- 3. Array berisi ternary / objek -->
<div :class="[menyala ? 'terang' : 'gelap', { besar: besar }]"></div>

Dengan menyala = true, bentuk pertama menghasilkan class="kartu aktif".

Style binding

<p :style="{ color: warna, fontSize: ukuran + 'px' }">Teks</p>
<p :style="[gayaDasar, gayaTambahan]">Teks</p>
  • Properti CSS bisa ditulis camelCase (fontSize) atau kebab-case dalam tanda kutip ('font-size').
  • Untuk kondisi yang rumit, lebih baik pakai class daripada style inline.

Mengikat banyak atribut sekaligus

<input v-bind="atributInput">
const atributInput = { type: 'text', placeholder: 'Nama', maxlength: 20 }

Singkatan nama sama (Vue 3.4+)

Jika nama atribut sama dengan nama variabel, tulis :id saja — setara :id="id".

Tabel ringkas

TujuanContoh
Atribut dinamis:src="url"
Boolean:disabled="habis"
Class kondisional:class="{ aktif: ok }"
Gabung class:class="[a, b]"
Style:style="{ color: warna }"

Kesalahan umum

  • Lupa titik dua: src="gambar" memuat file bernama "gambar", bukan isi variabelnya.
  • Di objek class, nama class berisi tanda hubung harus dikutip: { 'teks-merah': true }.
  • Menulis nilai px tanpa satuan: fontSize: 20 tidak valid, tulis ukuran + 'px'.

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