HeadlinesBriefing favicon HeadlinesBriefing.com

htmx 4.0 publié : changements clés et migration

Hacker News •
×

L'équipe htmx a publié la version 4.0.0 après 8 mois de travail. L'idée est née de la création de fixi, ce qui a conduit à une meilleure compréhension de l'API fetch() et de la programmation asynchrone. JavaScript dépendait auparavant de XMLHttpRequest en raison de problèmes de compatibilité ascendante. Un contact fortuit avec Christian a suscité un intérêt pour le streaming HTML, ce qui a conduit à un passage à fetch() en interne. Avec l'aide de Michael et Alex, l'équipe a porté fixi et la suite de tests htmx, redécouvrant pourquoi htmx faisait beaucoup de choses comme il le faisait, et alignant étroitement la nouvelle implémentation sur l'ancienne.

Les différences de comportement entre 2.x et 4.x sont relativement mineures, avec des choix délibérés pour prendre en charge des services Web centenaires. Notamment, 4.0 n'est pas marqué comme latest sur NPM pour éviter de forcer les utilisateurs dépendant de CDN non versionnés à mettre à niveau. Au lieu de cela, 2.x reste latest, tandis que 4.0 reste next jusqu'au début 2027. Le site Web fera référence à 4.0.

Trois changements majeurs se démarquent. Premièrement, l'héritage des attributs est désormais explicite : dans htmx 2, des attributs comme hx-confirm étaient hérités par défaut ; dans 4.0, vous devez ajouter :inherited (par exemple, hx-confirm:inherited). C'est la plus grande charge de migration, mais un outil en ligne de commande aide à identifier les changements nécessaires, et hx-disinherit n'est plus nécessaire. Deuxièmement, les noms d'événements sont standardisés au format htmx:phase:action[:sub-action] (par exemple, htmx:before:request au lieu de htmx:beforeRequest). Troisièmement, la prise en charge de l'historique n'utilise plus localStorage par défaut, ce que la plupart des utilisateurs ne remarqueront pas. En interne, la migration de XMLHttpRequest vers fetch() est transparente pour les utilisateurs.

Changements supplémentaires : la plupart des événements d'erreur se fondent dans htmx:error, les erreurs HTTP déclenchent htmx:response:error, les événements htmx:xhr:* sont supprimés, et les événements htmx:validation:* sont remplacés par la validation native du navigateur. Le vérificateur de mise à niveau signale les anciens noms d'événements dans les attributs hx-on et JavaScript. Dans l'ensemble, htmx 4.0 maintient la compatibilité tout en modernisant les internes et en clarifiant le comportement.

Entités clés : Entreprises : htmx, fixi | Personnes : Christian, Michael, Alex

FAQ : Quel est le plus grand changement dans htmx 4.0 ?

Le plus grand changement est que l'héritage des attributs est désormais explicite. Dans htmx 2, des attributs comme hx-confirm étaient hérités par défaut ; dans 4.0, vous devez ajouter :inherited (par exemple, hx-confirm:inherited) pour l'activer. Un outil en ligne de commande aide à trouver les endroits nécessitant ce changement.