htmx プロジェクトは 8 月 28 日、8 か月間の開発を経てメジャーバージョン 4.0.0 をリリースしました。最大の内部変更は AJAX 実装を XMLHttpRequest から Fetch API と ReadableStream へ全面刷新した点で、外部から見える挙動でも属性継承の明示化や morph swap の標準搭載など互換性を伴う刷新が入っています。

主なポイント

  • HTTP 通信を fetch() ベースに刷新。ストリーミング応答や AbortSignal との親和性が向上
  • 属性継承は opt-in に変更。親要素の hx-* を子で使うには :inherited サフィックスを明示する必要がある
  • イベント名を htmx:phase:action 形式に統一 (例: htmx:beforeRequest → htmx:before:request)
  • 標準で morph 系スワップに対応し、DOM を丸ごと差し替えず既存ノードを再利用可能。hx-partial 要素で複数ターゲット部分更新も導入
  • 履歴保存は既定で localStorage スナップショットをやめ、戻る操作時は再フェッチする方式に。既存 2.x プロジェクトの移行を助けるアップグレードチェッカも同梱
  • 破壊的変更が大きいため 4.0 は npm の next タグに置かれ、latest は当面 2.x を維持。切替は 2027 年初頭を予定

出典: htmx 4.0.0 has been released!