Skip to content

Yang Digunakan Dalam HTMX

Published: at 07.03

Daftar Isi

Atribut Inti htmx

Berikut adalah atribut yang paling umum digunakan saat menggunakan htmx:

AtributDeskripsi
hx-getMengirimkan permintaan GET ke URL yang ditentukan
hx-postMengirimkan permintaan POST ke URL yang ditentukan
hx-on*Menangani peristiwa dengan skrip inline pada elemen
hx-push-urlMemasukkan URL ke bilah lokasi peramban untuk membuat riwayat
hx-selectMemilih konten yang akan ditukar dari respon
hx-select-oobMemilih konten yang akan ditukar dari respon, di tempat lain selain target (di luar jalur)
hx-swapMengontrol cara konten akan ditukar (outerHTML, beforeend, afterend, …)
hx-swap-oobMenandai elemen yang akan ditukar dari respon (di luar jalur)
hx-targetMenentukan elemen target yang akan ditukar
hx-triggerMenentukan peristiwa yang memicu permintaan
hx-valsMenambahkan nilai untuk dikirimkan bersama permintaan (format JSON)

Atribut Tambahan htmx

Berikut adalah atribut tambahan yang tersedia dalam htmx:

AtributDeskripsi
hx-boostMenambahkan peningkatan progresif untuk tautan dan formulir
hx-confirmMenampilkan dialog konfirmasi sebelum mengirimkan permintaan
hx-deleteMengirimkan permintaan DELETE ke URL yang ditentukan
hx-disableMenonaktifkan pemrosesan htmx untuk node yang diberikan dan node anaknya
hx-disabled-eltMenambahkan atribut disabled ke elemen yang ditentukan saat permintaan sedang berlangsung
hx-disinheritMengontrol dan menonaktifkan pewarisan atribut otomatis untuk node anak
hx-encodingMengubah jenis pengkodean permintaan
hx-extEkstensi yang akan digunakan untuk elemen ini
hx-headersMenambahkan ke header yang akan dikirimkan bersama permintaan
hx-historyMencegah data sensitif disimpan dalam cache riwayat
hx-history-eltElemen yang akan diambil snapshot dan dipulihkan selama navigasi riwayat
hx-includeMenyertakan data tambahan dalam permintaan
hx-indicatorElemen yang akan diberi kelas htmx-request selama permintaan berlangsung
hx-paramsMemfilter parameter yang akan dikirimkan dengan permintaan
hx-patchMengirimkan permintaan PATCH ke URL yang ditentukan
hx-preserveMenentukan elemen yang akan tetap tidak berubah di antara permintaan
hx-promptMenampilkan prompt sebelum mengirimkan permintaan
hx-putMengirimkan permintaan PUT ke URL yang ditentukan
hx-replace-urlMengganti URL di bilah lokasi peramban
hx-requestMengonfigurasi berbagai aspek permintaan
hx-syncMengontrol cara permintaan yang dibuat oleh elemen berbeda disinkronkan
hx-validateMemaksa elemen untuk memvalidasi diri mereka sendiri sebelum permintaan
hx-varsMenambahkan nilai secara dinamis ke parameter untuk dikirimkan dengan permintaan (tidak disarankan, gunakan hx-vals)

Kelas CSS htmx

KelasDeskripsi
htmx-addedDiterapkan pada konten baru sebelum ditukar, dihapus setelah selesai.
htmx-indicatorKelas yang dihasilkan secara dinamis yang akan beralih visibel (opacity:1) saat kelas htmx-request ada
htmx-requestDiterapkan pada elemen atau elemen yang ditentukan dengan hx-indicator saat permintaan sedang berlangsung
htmx-settlingDiterapkan pada target setelah konten ditukar, dihapus setelah selesai. Durasinya dapat dimodifikasi melalui hx-swap.
htmx-swappingDiterapkan pada target sebelum konten ditukar, dihapus setelah ditukar. Durasinya dapat dimodifikasi melalui hx-swap.

Header Permintaan htmx

HeaderDeskripsi
HX-BoostedMenunjukkan bahwa permintaan berasal dari elemen yang menggunakan hx-boost
HX-Current-URLURL saat ini dari peramban
HX-History-Restore-Request”true” jika permintaan adalah untuk pemulihan riwayat setelah tidak ditemukan di cache riwayat lokal
HX-PromptRespons pengguna terhadap hx-prompt
HX-RequestSelalu “true”
HX-TargetID elemen target jika ada
HX-Trigger-NameNama elemen pemicu jika ada
HX-TriggerID elemen pemicu jika ada

Header Respon htmx

HeaderDeskripsi
HX-LocationMemungkinkan Anda melakukan pengalihan sisi klien yang tidak melakukan pemuatan ulang halaman penuh
HX-Push-UrlMemasukkan URL baru ke dalam tumpukan riwayat
HX-RedirectDapat digunakan untuk melakukan pengalihan sisi klien ke lokasi baru
HX-RefreshJika diatur ke “true”, sisi klien akan melakukan penyegaran penuh halaman
HX-Replace-UrlMengganti URL saat ini di bilah lokasi
HX-ReswapMemungkinkan Anda menentukan cara respons akan ditukar. Lihat hx-swap untuk nilai yang mungkin
HX-RetargetPemilih CSS yang memperbarui target pembaruan konten ke elemen lain di halaman
HX-ReselectPemilih CSS yang memungkinkan Anda memilih bagian mana dari respons yang digunakan untuk ditukar. Menggantikan hx-select yang ada pada elemen pemicu
HX-TriggerMemungkinkan Anda memicu peristiwa sisi klien
HX-Trigger-After-SettleMemungkinkan Anda memicu peristiwa sisi klien setelah langkah penyelesaian
HX-Trigger-After-SwapMemungkinkan Anda memicu peristiwa sisi klien setelah langkah penukaran

Peristiwa htmx

PeristiwaDeskripsi
htmx:abortKirim peristiwa ini ke elemen untuk membatalkan permintaan
htmx:afterOnLoadDipicu setelah permintaan AJAX selesai memproses respons yang berhasil
htmx:afterProcessNodeDipicu setelah htmx menginisialisasi node
htmx:afterRequestDipicu setelah permintaan AJAX selesai
htmx:afterSettleDipicu setelah DOM selesai diselesaikan
htmx:afterSwapDipicu setelah konten baru ditukar
htmx:beforeCleanupElementDipicu sebelum htmx menonaktifkan elemen atau menghapusnya dari DOM
htmx:beforeOnLoadDipicu sebelum pemrosesan respons apa pun terjadi
htmx:beforeProcessNodeDipicu sebelum htmx menginisialisasi node
htmx:beforeRequestDipicu sebelum permintaan AJAX dilakukan
htmx:beforeSwapDipicu sebelum pertukaran dilakukan, memungkinkan Anda mengonfigurasi pertukaran
htmx:beforeSendDipicu tepat sebelum permintaan AJAX dikirim
htmx:configRequestDipicu sebelum permintaan, memungkinkan Anda menyesuaikan parameter, header
htmx:confirmDipicu setelah pemicu terjadi pada elemen, memungkinkan Anda membatalkan (atau menunda) mengirimkan permintaan AJAX
htmx:historyCacheErrorDipicu saat terjadi kesalahan selama penulisan cache
htmx:historyCacheMissDipicu saat terjadi cache miss di subsistem riwayat
htmx:historyCacheMissErrorDipicu saat pengambilan jarak jauh tidak berhasil
htmx:historyCacheMissLoadDipicu saat pengambilan jarak jauh berhasil
htmx:historyRestoreDipicu saat htmx menangani tindakan pemulihan riwayat
htmx:beforeHistorySaveDipicu sebelum konten disimpan ke cache riwayat
htmx:loadDipicu saat konten baru ditambahkan ke DOM
htmx:noSSESourceErrorDipicu saat elemen merujuk ke peristiwa SSE dalam pemicunya, tetapi tidak ada sumber SSE induk yang ditentukan
htmx:onLoadErrorDipicu saat terjadi pengecualian selama penanganan onLoad di htmx
htmx:oobAfterSwapDipicu setelah elemen di luar jalur ditukar
htmx:oobBeforeSwapDipicu sebelum pertukaran elemen di luar jalur dilakukan, memungkinkan Anda mengonfigurasi pertukaran
htmx:oobErrorNoTargetDipicu saat elemen di luar jalur tidak memiliki ID yang cocok di DOM saat ini
htmx:promptDipicu setelah prompt ditampilkan
htmx:pushedIntoHistoryDipicu setelah URL didorong ke dalam riwayat
htmx:responseErrorDipicu saat terjadi kesalahan respons HTTP (kode respons non-200 atau 300)
htmx:sendErrorDipicu saat kesalahan jaringan mencegah permintaan HTTP terjadi
htmx:sseErrorDipicu saat terjadi kesalahan dengan sumber SSE
htmx:sseOpenDipicu saat sumber SSE dibuka
htmx:swapErrorDipicu saat terjadi kesalahan selama fase pertukaran
htmx:targetErrorDipicu saat target yang tidak valid ditentukan
htmx:timeoutDipicu saat terjadi waktu tunggu permintaan
htmx:validation:validateDipicu sebelum elemen divalidasi
htmx:validation:failedDipicu saat elemen gagal validasi
htmx:validation:haltedDipicu saat permintaan dihentikan karena kesalahan validasi
htmx:xhr:abortDipicu saat permintaan AJAX dibatalkan
htmx:xhr:loadendDipicu saat permintaan AJAX berakhir
htmx:xhr:loadstartDipicu saat permintaan AJAX dimulai
htmx:xhr:progressDipicu secara berkala selama permintaan AJAX yang mendukung peristiwa progress

Referensi API JavaScript

MetodeDeskripsi
htmx.addClass()Menambahkan kelas ke elemen yang diberikan
htmx.ajax()Mengirimkan permintaan AJAX gaya htmx
htmx.closest()Menemukan induk terdekat ke elemen yang diberikan yang cocok dengan pemilih
htmx.configProperti yang menyimpan objek konfigurasi htmx saat ini
htmx.createEventSourceProperti yang menyimpan fungsi untuk membuat objek EventSource SSE untuk htmx
htmx.createWebSocketProperti yang menyimpan fungsi untuk membuat objek WebSocket untuk htmx
htmx.defineExtension()Mendefinisikan ekstensi htmx
htmx.find()Menemukan satu elemen yang cocok dengan pemilih
htmx.findAll()Menemukan semua elemen yang cocok dengan pemilih yang diberikan
htmx.logAll()Memasang logger yang akan mencatat semua peristiwa htmx
htmx.loggerProperti yang diatur ke logger saat ini (default adalah null)
htmx.off()Menghapus pendengar peristiwa dari elemen yang diberikan
htmx.on()Membuat pendengar peristiwa pada elemen yang diberikan, mengembalikannya
htmx.onLoad()Menambahkan handler callback untuk peristiwa htmx:load
htmx.parseInterval()Menguraikan deklarasi interval menjadi nilai milidetik
htmx.process()Memproses elemen yang diberikan dan anaknya, menghubungkan perilaku htmx apa pun
htmx.remove()Menghapus elemen yang diberikan
htmx.removeClass()Menghapus kelas dari elemen yang diberikan
htmx.removeExtension()Menghapus ekstensi htmx
htmx.takeClass()Mengambil kelas dari elemen lain untuk elemen yang diberikan
htmx.toggleClass()Mengalihkan kelas dari elemen yang diberikan
htmx.trigger()Memicu peristiwa pada elemen
htmx.values()Mengembalikan nilai input yang terkait dengan elemen yang diberikan

Opsi Konfigurasi

Htmx memiliki beberapa opsi konfigurasi yang dapat diakses secara terprogram atau deklaratif. Berikut adalah daftarnya:

Variabel KonfigurasiInfo
htmx.config.historyEnableddefault ke true, hanya berguna untuk pengujian
htmx.config.historyCacheSizedefault ke 10
htmx.config.refreshOnHistoryMissdefault ke false, jika diatur ke true, htmx akan mengeluarkan refresh halaman penuh pada history miss daripada menggunakan permintaan AJAX
htmx.config.defaultSwapStyledefault ke innerHTML
htmx.config.defaultSwapDelaydefault ke 0
htmx.config.defaultSettleDelaydefault ke 20
htmx.config.includeIndicatorStylesdefault ke true (menentukan apakah gaya indikator dimuat)
htmx.config.indicatorClassdefault ke htmx-indicator
htmx.config.requestClassdefault ke htmx-request
htmx.config.addedClassdefault ke htmx-added
htmx.config.settlingClassdefault ke htmx-settling
htmx.config.swappingClassdefault ke htmx-swapping
htmx.config.allowEvaldefault ke true, dapat digunakan untuk menonaktifkan penggunaan eval oleh htmx untuk fitur tertentu (misalnya filter pemicu)
htmx.config.allowScriptTagsdefault ke true, menentukan apakah htmx akan memproses tag script yang ditemukan dalam konten baru
htmx.config.inlineScriptNoncedefault ke ”, artinya tidak ada nonce yang akan ditambahkan ke skrip inline
htmx.config.attributesToSettledefault ke [“class”, “style”, “width”, “height”], atribut yang akan diselesaikan selama fase penyelesaian
htmx.config.useTemplateFragmentsdefault ke false, tag template HTML untuk mengurai konten dari server (tidak kompatibel dengan IE11!)
htmx.config.wsReconnectDelaydefault ke full-jitter
htmx.config.wsBinaryTypedefault ke blob, jenis data biner yang diterima melalui koneksi WebSocket
htmx.config.disableSelectordefault ke [hx-disable], [data-hx-disable], htmx tidak akan memproses elemen dengan atribut ini atau induknya
htmx.config.withCredentialsdefault ke false, izinkan permintaan Access-Control lintas situs menggunakan kredensial seperti cookie, header otorisasi, atau sertifikat klien TLS
htmx.config.timeoutdefault ke 0, jumlah milidetik yang dapat diambil permintaan sebelum dihentikan secara otomatis
htmx.config.scrollBehaviordefault ke ‘smooth’, perilaku untuk tautan yang ditingkatkan pada transisi halaman. Nilai yang diizinkan adalah auto dan smooth. Smooth akan menggulung halus ke atas halaman sementara auto akan berperilaku seperti tautan biasa.
htmx.config.defaultFocusScrolljika elemen yang difokuskan harus digulir ke tampilan, defaultnya adalah false dan dapat diganti menggunakan pengubah tukar focus-scroll
htmx.config.getCacheBusterParamdefault ke false, jika diatur ke true htmx akan menyertakan parameter pemecah cache dalam permintaan GET untuk menghindari penyimpanan respons parsial oleh browser
htmx.config.globalViewTransitionsjika diatur ke true, htmx akan menggunakan API View Transition saat menukar konten baru.
htmx.config.methodsThatUseUrlParamsdefault ke [“get”], htmx akan memformat permintaan dengan metode ini dengan mengkodekan parameternya di URL, bukan di badan permintaan
htmx.config.selfRequestsOnlydefault ke false, jika diatur ke true, hanya akan mengizinkan permintaan AJAX ke domain yang sama dengan dokumen saat ini
htmx.config.ignoreTitledefault ke false, jika diatur ke true htmx tidak akan memperbarui judul dokumen saat tag judul ditemukan dalam konten baru
htmx.config.scrollIntoViewOnBoostdefault ke true, apakah target elemen yang ditingkatkan digulir ke viewport. Jika hx-target dihilangkan pada elemen yang ditingkatkan, targetnya defaultnya adalah body, menyebabkan halaman bergulir ke atas.
htmx.config.triggerSpecsCachedefault ke null, cache untuk menyimpan spesifikasi pemicu yang dievaluasi, meningkatkan kinerja parsing dengan mengorbankan penggunaan memori yang lebih besar. Anda dapat mendefinisikan objek sederhana untuk menggunakan cache yang tidak pernah bersih, atau mengimplementasikan sistem Anda sendiri menggunakan objek proxy

Anda dapat mengaturnya secara langsung dalam JavaScript, atau Anda dapat menggunakan tag meta: