Belajar Alpine.js Dasar #6: Looping


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Alpine.js Dasar #6: Looping

Halo teman-teman semuanya! Setelah sebelumnya kita belajar bagaimana menangani kondisi dengan x-show dan x-if, sekarang saatnya kita bahas bagaimana caranya menampilkan data dalam bentuk daftar atau list menggunakan directive x-for.

Directive ini sangat berguna kalau kita ingin menampilkan banyak elemen berdasarkan array, misalnya daftar produk, komentar, atau apapun yang berbentuk koleksi data.

Apa Itu x-for?

x-for adalah directive yang digunakan untuk melakukan perulangan (looping) terhadap data array di Alpine.js. Konsepnya mirip seperti v-for di Vue.js atau forEach di JavaScript, tapi langsung digunakan di dalam HTML.

Format umum:

<div x-for="item in daftar">
  {{ item }}
</div>

Contoh Dasar

<div x-data="{ buah: ['Apel', 'Jeruk', 'Mangga'] }">
  <ul>
    <template x-for="item in buah" :key="item">
      <li x-text="item"></li>
    </template>
  </ul>
</div>

Penjelasan:

  • x-for="item in buah" artinya kita akan looping tiap item di dalam array buah.
  • x-text="item" digunakan untuk menampilkan nilai item.
  • Kita menggunakan <template> untuk membungkus elemen yang akan diulang, dan Alpine akan menggandakan isi dari template-nya.

Menampilkan Index

Kalau kita ingin menampilkan indeks dari setiap item, kita bisa gunakan sintaks ini:

<template x-for="(item, index) in buah" :key="index">
  <li x-text="`${index + 1}. ${item}`"></li>
</template>

x-for dengan Object Array

Kita juga bisa melakukan looping terhadap array yang berisi objek:

<div x-data="{ users: [
  { nama: 'Ali', umur: 20 },
  { nama: 'Budi', umur: 25 },
  { nama: 'Citra', umur: 22 }
] }">
  <ul>
    <template x-for="user in users" :key="user.nama">
      <li>
        <strong x-text="user.nama"></strong> - <span x-text="user.umur + ' tahun'"></span>
      </li>
    </template>
  </ul>
</div>

Penting: Jangan Lupa :key

Sama seperti framework frontend lainnya, Alpine menyarankan untuk selalu menambahkan :key agar performa optimal dan perubahan DOM bisa dilacak dengan lebih baik.

<template x-for="item in list" :key="item.id">

Looping Dinamis

Kita bisa menggabungkan x-for dengan event handling atau input user, misalnya menambahkan item baru ke dalam list:

<div x-data="{ items: [], baru: '' }">
  <input type="text" x-model="baru">
  <button @click="items.push(baru); baru = ''">Tambah</button>

  <ul>
    <template x-for="(item, i) in items" :key="i">
      <li x-text="item"></li>
    </template>
  </ul>
</div>

Kesimpulan

Di artikel ini, kita sudah belajar bagaimana menggunakan x-for untuk menampilkan data dalam bentuk daftar. Kita juga sudah lihat bagaimana x-for bisa digabung dengan x-text, input user, bahkan objek.

Pada artikel berikutnya, kita semua akan belajar tentang Class dan Style Binding 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