Belajar Alpine.js Dasar #13: Fetch API


👍 0 ❤️ 0 💡 0 🔥 0 🙌 0 🥳 0
Belajar Alpine.js Dasar #13: Fetch API

Halo teman-teman semuanya, di artikel sebelumnya kita sudah belajar bagaimana cara melakukan interaksi antar komponen di Alpine.js. Nah, sekarang saatnya kita naik level lagi dengan membahas cara mengambil data dari server menggunakan Fetch API di Alpine.js.

Fetch API memungkinkan kita untuk melakukan permintaan HTTP (seperti GET, POST, dll.) ke server dari dalam browser.

Fitur ini sangat penting jika kita ingin membuat aplikasi web yang dinamis, misalnya menampilkan data produk dari API, mengambil komentar dari database, atau mengirim form ke server.

Apa Itu Fetch API?

Fetch API adalah fitur bawaan JavaScript modern yang digunakan untuk berkomunikasi dengan server melalui HTTP. Di Alpine.js, kita bisa menggunakannya langsung di dalam fungsi yang didefinisikan di x-data.

Contoh dasar penggunaan Fetch:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data));

Contoh Penggunaan di Alpine.js

Berikut contoh menampilkan daftar pengguna dari API publik menggunakan Alpine.js:

<div x-data="fetchPengguna()" x-init="ambilData()">
  <template x-if="loading">
    <p>Loading data...</p>
  </template>

  <template x-if="!loading">
    <ul>
      <template x-for="user in users" :key="user.id">
        <li x-text="user.name"></li>
      </template>
    </ul>
  </template>
</div>

<script>
  function fetchPengguna() {
    return {
      users: [],
      loading: true,
      async ambilData() {
        try {
          const res = await fetch('https://jsonplaceholder.typicode.com/users');
          const data = await res.json();
          this.users = data;
        } catch (e) {
          console.error('Gagal mengambil data:', e);
        } finally {
          this.loading = false;
        }
      }
    }
  }
</script>

Penjelasan:

  • x-data="fetchPengguna()" adalah fungsi yang berisi state dan method
  • x-init="ambilData()" akan otomatis dijalankan saat komponen dimuat
  • loading digunakan untuk menampilkan indikator loading
  • x-for digunakan untuk menampilkan daftar pengguna

Menangani Error dan Validasi

Jangan lupa tambahkan penanganan error agar aplikasi tetap responsif dan tidak blank saat terjadi masalah:

catch (e) {
  console.error('Gagal mengambil data:', e);
  alert('Terjadi kesalahan saat mengambil data.');
}

Mengirim Data (POST)

Kalau kita ingin mengirim data ke server, kita bisa gunakan method POST:

await fetch('https://api.example.com/kirim', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ nama: 'Alpine User' })
});

Kesimpulan

Di artikel ini, kita sudah belajar bagaimana menggunakan Fetch API di Alpine.js untuk mengambil dan mengirim data dari/ke server.

Di seri selanjutnya, kita akan bahas tentang Menggunakan Plugin di Alpine.js, supaya kita bisa memperluas fitur dengan lebih mudah.

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