HeadlinesBriefing favicon HeadlinesBriefing.com

htmx 4.0 veröffentlicht: Wichtige Änderungen und Migration

Hacker News •
×

Das htmx-Team hat Version 4.0.0 nach 8 Monaten Arbeit veröffentlicht. Die Idee entstand aus der Erstellung von fixi, was zu einem tieferen Verständnis der fetch()-API und asynchroner Programmierung führte. JavaScript war zuvor aufgrund von Abwärtskompatibilitätsproblemen auf XMLHttpRequest angewiesen. Ein zufälliger Kontakt mit Christian weckte Interesse an HTML-Streaming, was den Wechsel zu fetch() intern vorantrieb. Mit Hilfe von Michael und Alex portierte das Team fixi und die htmx-Testsuite, entdeckte erneut, warum htmx viele Dinge so tat, wie es sie tat, und richtete die neue Implementierung eng an der alten aus.

Die Verhaltensunterschiede zwischen 2.x und 4.x sind relativ gering, mit bewussten Entscheidungen zur Unterstützung jahrhundertealter Webdienste. Insbesondere ist 4.0 nicht als latest auf NPM markiert, um Benutzer, die auf nicht versionierte CDNs angewiesen sind, nicht zum Upgrade zu zwingen. Stattdessen bleibt 2.x latest, während 4.0 bis Anfang 2027 als next bleibt. Die Website wird auf 4.0 verweisen.

Drei Hauptänderungen stechen hervor. Erstens ist die Attributvererbung jetzt explizit: In htmx 2 wurden Attribute wie hx-confirm standardmäßig vererbt; in 4.0 müssen Sie :inherited hinzufügen (z. B. hx-confirm:inherited). Dies ist die größte Migrationslast, aber ein Befehlszeilentool hilft, die erforderlichen Änderungen zu identifizieren, und hx-disinherit ist nicht mehr erforderlich. Zweitens werden Ereignisnamen im Format htmx:phase:action[:sub-action] standardisiert (z. B. htmx:before:request statt htmx:beforeRequest). Drittens verwendet die Verlaufsunterstützung standardmäßig kein localStorage mehr, was die meisten Benutzer nicht bemerken werden. Intern ist die Migration von XMLHttpRequest zu fetch() für Benutzer transparent.

Zusätzliche Änderungen: Die meisten Fehlerereignisse verschmelzen zu htmx:error, HTTP-Fehler lösen htmx:response:error aus, htmx:xhr:* Ereignisse werden entfernt und htmx:validation:* Ereignisse werden durch native Browservalidierung ersetzt. Der Upgrade-Checker kennzeichnet alte Ereignisnamen in hx-on-Attributen und JavaScript. Insgesamt behält htmx 4.0 die Kompatibilität bei, während es die Interna modernisiert und das Verhalten klärt.

Wichtige Entitäten: Unternehmen: htmx, fixi | Personen: Christian, Michael, Alex