Cơ Bản
Cài Đặt
npm install htmx.org
Cách Hoạt Động
HTML-drivenGọi AJAX từ HTML attributes, không cần JS
Swap contentServer trả về HTML fragment, htmx hoán đổi vào
ProgressiveCải thiện HTML chuẩn; giảm dần nhẹ nhàng
REST-friendlyHoạt động với bất kỳ framework server-side nào
Attributes
Attributes Request Cốt Lõi
hx-get="/url"Gửi request GET đến URL
hx-post="/url"Gửi request POST đến URL
hx-put="/url"Gửi request PUT đến URL
hx-patch="/url"Gửi request PATCH đến URL
hx-delete="/url"Gửi request DELETE đến URL
Attributes Hành Vi
hx-triggerSự kiện kích hoạt request
hx-targetPhần tử để hoán đổi nội dung vào
hx-swapCách hoán đổi nội dung response
hx-selectChọn một phần HTML response
hx-valsThêm giá trị bổ sung vào request
hx-confirmHiển thị hộp thoại xác nhận trước request
hx-disableTắt xử lý htmx trên phần tử
Triggers
Cú Pháp Trigger
Feed
Bộ Chỉnh Trigger
changedChỉ kích hoạt khi giá trị thay đổi
delay:NsChờ N giây trước khi kích hoạt
throttle:NmsThrottle một lần mỗi N ms
onceChỉ kích hoạt lần đầu tiên
from:selectorLắng nghe trên phần tử khác
every NsPoll mỗi N giây
loadKích hoạt khi phần tử tải
revealedKích hoạt khi phần tử cuộn vào tầm nhìn
Targets
Chọn Target
Từ Khóa Target
thisChính phần tử đó (mặc định)
closest <sel>Tổ tiên gần nhất khớp selector
find <sel>Con cháu đầu tiên khớp selector
next <sel>Anh em tiếp theo khớp selector
previous <sel>Anh em trước đó khớp selector
Swapping
Chiến Lược Swap
innerHTMLThay thế nội dung bên trong (mặc định)
outerHTMLThay thế toàn bộ phần tử target
afterbeginChèn vào đầu bên trong target
beforeendThêm vào cuối bên trong target
beforebeginChèn trước target
afterendChèn sau target
deleteXóa phần tử target
noneKhông swap, chỉ kích hoạt sự kiện
Bộ Chỉnh Swap
Headers
Request Headers (htmx gửi)
HX-RequestLuôn là "true" cho request htmx
HX-TargetID của phần tử target
HX-TriggerID của phần tử kích hoạt
HX-Trigger-NameTên của phần tử kích hoạt
HX-Current-URLURL hiện tại của trình duyệt
HX-PromptPhản hồi người dùng từ hx-prompt
Response Headers (server gửi)
HX-RedirectRedirect phía client đến URL
HX-RefreshTải lại toàn trang nếu là "true"
HX-RetargetGhi đè hx-target bằng CSS selector
HX-ReswapGhi đè chiến lược hx-swap
HX-TriggerKích hoạt sự kiện phía client
HX-Push-UrlĐẩy URL vào lịch sử trình duyệt
Events
Sự Kiện Vòng Đời
htmx:configRequestTrước request; sửa đổi params/headers
htmx:beforeRequestNgay trước cuộc gọi AJAX
htmx:afterRequestSau khi request hoàn tất
htmx:beforeSwapTrước khi nội dung được hoán đổi vào
htmx:afterSwapSau khi nội dung được hoán đổi vào
htmx:afterSettleSau khi DOM ổn định từ swap
htmx:responseErrorServer trả về trạng thái lỗi
Lắng Nghe Sự Kiện
document.body.addEventListener("htmx:afterSwap", (e) => { console.log("Swapped:", e.detail.target); }); // Cancel a request document.body.addEventListener("htmx:configRequest", (e) => { if (!confirm("Proceed?")) e.preventDefault(); });
Extensions
Sử Dụng Extensions
Extensions Phổ Biến
json-encEncode body request dạng JSON
loading-statesQuản lý CSS class trạng thái loading
head-supportMerge tag từ response
preloadPreload link khi mousedown/hover
sseHỗ trợ Server-Sent Events
wsHỗ trợ WebSocket
response-targetsTarget khác nhau cho response lỗi
Indicators
Chỉ Báo Loading
Loading...
CSS Indicator
.htmx-indicator { display: none; } .htmx-request .htmx-indicator { display: inline; } .htmx-request.htmx-indicator { display: inline; }

htmx thêm class htmx-request vào phần tử trong khi request

Vô Hiệu Hóa Trong Khi Request

hx-disabled-elt thêm thuộc tính disabled trong khi request

Mẫu Phổ Biến
Tìm Kiếm Trực Tiếp
#results" />
Cuộn Vô Hạn
Loading more...
Xóa Có Xác Nhận
Chỉnh Sửa Nội Tuyến
Click to edit this text