Belajar Alpine.js Dasar #7: Class dan Style Binding


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Alpine.js Dasar #7: Class dan Style Binding

Halo teman-teman semuanya, di artikel sebelumnya kita sudah belajar tentang x-for untuk melakukan perulangan data. Sekarang kita akan masuk ke pembahasan yang nggak kalah penting, yaitu bagaimana cara mengubah tampilan elemen secara dinamis menggunakan Class dan Style Binding di Alpine.js.

Dengan binding class dan style, kita bisa menyesuaikan tampilan elemen berdasarkan kondisi atau data yang ada di dalam komponen Alpine.

Class Binding dengan :class

Kita bisa menggunakan directive :class (atau x-bind:class) untuk mengatur class CSS berdasarkan kondisi tertentu.

  • Contoh Sederhana

    <div x-data="{ aktif: true }">
      <button @click="aktif = !aktif">Toggle</button>
      <p :class="aktif ? 'text-green-600' : 'text-red-600'">Status: <span x-text="aktif ? 'Aktif' : 'Nonaktif'"></span></p>
    </div>
    

    Di contoh ini, warna teks akan berubah menjadi hijau saat status aktif, dan merah saat nonaktif.

  • Object Syntax

    Kita juga bisa pakai object agar lebih fleksibel:

    <p :class="{ 'bg-blue-500': aktif, 'bg-gray-300': !aktif }">
      Kondisi Background
    </p>
    

Style Binding dengan :style

Kalau kita ingin mengubah gaya (style) langsung, kita bisa gunakan :style.

<div x-data="{ lebar: 100 }">
  <input type="range" min="50" max="300" x-model="lebar">
  <div :style="{ width: lebar + 'px', height: '50px', backgroundColor: 'skyblue' }">
    Lebar: <span x-text="lebar"></span>px
  </div>
</div>

Pada contoh di atas, lebar kotak akan berubah secara real-time sesuai nilai slider.

Menggabungkan Class dan Style

Tentu saja, kita juga bisa menggabungkan keduanya dalam satu elemen:

<div x-data="{ aktif: false }">
  <button @click="aktif = !aktif">Toggle</button>
  <p
    :class="{ 'font-bold': aktif }"
    :style="{ color: aktif ? 'green' : 'gray' }"
  >
    Ini teks yang berubah!
  </p>
</div>

Catatan Tambahan

  • :class dan :style adalah shorthand dari x-bind:class dan x-bind:style.
  • Binding ini sangat cocok dipakai bersama data atau kondisi yang berubah secara interaktif.
  • Cocok banget dikombinasikan dengan framework CSS seperti Tailwind CSS.

Kesimpulan

Di artikel ini, kita sudah belajar cara mengatur class dan style HTML secara dinamis menggunakan Alpine.js. Dengan :class dan :style, tampilan aplikasi kita jadi lebih interaktif dan responsif terhadap perubahan data.

Pada artikel berikutnya, kita semua akan belajar tentang Component & Reusable Code di Alpine.js.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami