Bases
Installation
npm install htmx.org
Comment ça fonctionne
HTML-drivenÉmettre des requêtes AJAX depuis des attributs HTML, sans JS
Swap contentLe serveur retourne des fragments HTML, htmx les insère
ProgressiveAméliore le HTML standard ; se dégrade gracieusement
REST-friendlyFonctionne avec tout framework côté serveur
Attributs
Attributs de requête principaux
hx-get="/url"Émettre une requête GET vers l'URL
hx-post="/url"Émettre une requête POST vers l'URL
hx-put="/url"Émettre une requête PUT vers l'URL
hx-patch="/url"Émettre une requête PATCH vers l'URL
hx-delete="/url"Émettre une requête DELETE vers l'URL
Attributs de comportement
hx-triggerÉvénement qui déclenche la requête
hx-targetÉlément dans lequel insérer le contenu
hx-swapComment échanger le contenu de la réponse
hx-selectSélectionner un sous-ensemble du HTML de la réponse
hx-valsAjouter des valeurs supplémentaires à la requête
hx-confirmAfficher une boîte de confirmation avant la requête
hx-disableDésactiver le traitement htmx sur l'élément
Déclencheurs
Syntaxe des déclencheurs
Feed
Modificateurs de déclencheur
changedNe se déclenche que si la valeur a changé
delay:NsAttendre N secondes avant de se déclencher
throttle:NmsLimiter à une fois par N ms
onceSe déclencher uniquement la première fois
from:selectorÉcouter sur un élément différent
every NsInterroger toutes les N secondes
loadSe déclencher au chargement de l'élément
revealedSe déclencher quand l'élément entre dans la vue
Cibles
Sélection de la cible
Mots-clés de cible
thisL'élément lui-même (par défaut)
closest <sel>Ancêtre le plus proche correspondant au sélecteur
find <sel>Premier descendant correspondant au sélecteur
next <sel>Frère suivant correspondant au sélecteur
previous <sel>Frère précédent correspondant au sélecteur
Échange
Stratégies d'échange
innerHTMLRemplacer le contenu interne (par défaut)
outerHTMLRemplacer l'élément cible entier
afterbeginInsérer en tête de la cible
beforeendInsérer en fin de la cible
beforebeginInsérer avant la cible
afterendInsérer après la cible
deleteSupprimer l'élément cible
nonePas d'échange, déclencher uniquement les événements
Modificateurs d'échange
En-têtes
En-têtes de requête (envoyés par htmx)
HX-RequestToujours "true" pour les requêtes htmx
HX-TargetID de l'élément cible
HX-TriggerID de l'élément déclencheur
HX-Trigger-NameNom de l'élément déclencheur
HX-Current-URLURL actuelle du navigateur
HX-PromptRéponse de l'utilisateur depuis hx-prompt
En-têtes de réponse (envoyés par le serveur)
HX-RedirectRedirection côté client vers l'URL
HX-RefreshActualisation complète de la page si "true"
HX-RetargetRemplacer hx-target par un sélecteur CSS
HX-ReswapRemplacer la stratégie hx-swap
HX-TriggerDéclencher des événements côté client
HX-Push-UrlPousser l'URL dans l'historique du navigateur
Événements
Événements du cycle de vie
htmx:configRequestAvant la requête ; modifier les paramètres/en-têtes
htmx:beforeRequestJuste avant l'appel AJAX
htmx:afterRequestAprès la fin de la requête
htmx:beforeSwapAvant l'insertion du contenu
htmx:afterSwapAprès l'insertion du contenu
htmx:afterSettleAprès la stabilisation du DOM
htmx:responseErrorLe serveur a retourné un statut d'erreur
Écouter les événements
document.body.addEventListener("htmx:afterSwap", (e) => { console.log("Swapped:", e.detail.target); }); // Annuler une requête document.body.addEventListener("htmx:configRequest", (e) => { if (!confirm("Proceed?")) e.preventDefault(); });
Extensions
Utiliser les extensions
Extensions populaires
json-encEncoder le corps de la requête en JSON
loading-statesGérer les classes CSS d'état de chargement
head-supportFusionner les balises des réponses
preloadPrécharger les liens au mousedown/hover
sseSupport des Server-Sent Events
wsSupport WebSocket
response-targetsCibles différentes pour les réponses d'erreur
Indicateurs
Indicateur de chargement
Loading...
CSS de l'indicateur
.htmx-indicator { display: none; } .htmx-request .htmx-indicator { display: inline; } .htmx-request.htmx-indicator { display: inline; }

htmx ajoute la classe htmx-request à l'élément pendant les requêtes

Désactiver pendant la requête

hx-disabled-elt ajoute l'attribut disabled pendant la requête

Modèles courants
Recherche active
#results" />
Défilement infini
Loading more...
Suppression avec confirmation
Édition en ligne
Click to edit this text