Skip to content

Apa itu Swapping di HTMX

Published: at 01.03

Saat kita mengembangkan aplikasi web yang dinamis dan interaktif, seringkali kita perlu memperbarui atau menukar konten di halaman web tanpa harus memuat ulang seluruh halaman. Di sinilah HTMX mengambil peran. HTMX menawarkan berbagai cara untuk menukar (swap) HTML yang dikembalikan ke dalam DOM (Document Object Model) dengan mudah dan efisien.

Secara default, ketika HTMX menerima respons dari server, konten yang dikembalikan akan menggantikan innerHTML dari elemen target. Namun, kita bisa mengubah perilaku ini dengan menggunakan atribut hx-swap. Atribut ini memungkinkan kita untuk menentukan bagaimana konten baru akan diintegrasikan ke dalam DOM.

Berikut adalah beberapa nilai yang bisa kita gunakan dengan atribut hx-swap:

NilaiDeskripsi
innerHTMLNilai default, menempatkan konten di dalam elemen target
outerHTMLMengganti seluruh elemen target dengan konten yang dikembalikan
afterbeginMenyisipkan konten sebelum anak pertama di dalam elemen target
beforebeginMenyisipkan konten sebelum elemen target dalam elemen induk target
beforeendMenambahkan konten setelah anak terakhir di dalam elemen target
afterendMenambahkan konten setelah elemen target dalam elemen induk target
deleteMenghapus elemen target terlepas dari respons yang diterima
noneTidak menambahkan konten dari respons (Swapping di Luar Band dan Header Respons tetap akan diproses)

Contoh Penggunaan hx-swap

Berikut adalah beberapa contoh penggunaan atribut hx-swap dalam kode HTML:

  1. Mengganti seluruh elemen target dengan konten baru:

    <div id="content">
      <button hx-get="/get-content" hx-swap="outerHTML">Perbarui Konten</button>
    </div>
    
  2. Menyisipkan konten sebelum elemen target:

    <ul id="list">
      <li>Item 1</li>
      <li>Item 2</li>
    </ul>
    <button hx-get="/get-items" hx-swap="beforebegin" hx-target="#list">
      Tambah Item
    </button>
    
  3. Menambahkan konten setelah anak terakhir dalam elemen target:

    <div id="messages">
      <p>Pesan 1</p>
      <p>Pesan 2</p>
    </div>
    <button hx-get="/get-messages" hx-swap="beforeend" hx-target="#messages">
      Muat Pesan Lainnya
    </button>
    
  4. Menghapus elemen target setelah menerima respons:

    <div id="status">
      <p>Sedang memproses...</p>
      <button hx-get="/process" hx-swap="delete" hx-target="#status">
        Proses
      </button>
    </div>
    

Kesimpulan

Atribut hx-swap dalam HTMX memberikan kita fleksibilitas dalam menentukan bagaimana konten baru akan diintegrasikan ke dalam DOM setelah menerima respons dari server. Dengan berbagai opsi nilai yang tersedia, kita bisa dengan mudah mengontrol apakah konten akan menggantikan elemen target, disisipkan sebelum atau setelah elemen target, atau bahkan menghapus elemen target sepenuhnya.

Dengan memanfaatkan atribut hx-swap, kita bisa menciptakan pengalaman pengguna yang lebih mulus dan interaktif dalam aplikasi web kita. Konten dapat diperbarui secara dinamis tanpa harus memuat ulang seluruh halaman, sehingga meningkatkan kecepatan dan responsivitas aplikasi.

Jadi, jangan ragu untuk bereksperimen dengan atribut hx-swap dalam proyek HTMX Anda dan lihat bagaimana ia dapat mempermudah proses pertukaran konten dalam aplikasi web yang Anda bangun!