概要
- htmx 4.0.0 が8ヶ月の開発を経てリリース
- 主な変更点は fetch()移行、属性継承の明示化、イベント名の統一
- 履歴管理 や新機能(morph swap, <hx-partial>)の追加
- 拡張機能の充実とアップグレード支援ツールの提供
- htmx 2.xは引き続きサポート、4.xは段階的展開
htmx 4.0.0 リリース概要
- htmx 4.0.0 の正式リリース発表
- 約8ヶ月の開発期間とチームの協力による成果
- fetch() API と非同期プログラミングへの移行
- ChristianからのHTMLストリーミング提案による内部設計の刷新
- MichaelとAlexの参加による開発体制強化
- fixiとhtmxテストスイートの移植作業
- 2.xと4.xの動作差分は最小限、意図的な設計変更のみ
- 100年先を見据えたWebサービス基盤の目指す姿
- NPMでは2.xを最新、4.xはnextとして2027年まで並行提供
- 公式Webサイトは 4.0 を参照
主な変更点
- ユーザー視点では htmx 2とほぼ同等の操作感
- 3つの大きな変更点
- 属性継承 がデフォルトで明示指定に
- イベント名の統一・整理 (リスナーの変更が必要な場合あり)
- 履歴サポートが localStorage非使用 に変更(多くの不具合解消)
属性継承
- htmx 2では多くの属性が 暗黙的に継承
- htmx 4では :inherited サフィックスを付けて明示的に継承指定
- 例:
<div hx-confirm:inherited="Are you sure?">
- 例:
hx-disinherit等の属性は不要となり、削除が推奨- 移行支援のため コマンドラインツール を提供
イベント
- htmx 2のイベント名 は有機的に増加し体系化されていなかった
- htmx 4では htmx:phase:action[:sub-action] 形式で統一
- 例:
htmx:before:request,htmx:after:swap
- 例:
- 主な変更点
- エラーイベントは htmx:error に集約
- HTTPエラー時は htmx:response:error 発火
- htmx:xhr:*、 htmx:validation:* イベントは削除
- フルイベント一覧は公式ドキュメント参照
- 移行ツールで 旧イベント名の自動検出 可能
履歴管理
- htmx 2では localStorageキャッシュ によるページスナップショット方式
- 3rdパーティJSによるDOM変化が復元時に不整合を招く問題
- htmx 4では localStorage非使用、戻る操作時は再リクエストしてbody等に差し替え
- 3rdパーティJSとの連携が向上、キャッシュ活用で高速化も可能
- hx-history-cache拡張 でsessionStorageキャッシュも選択可能
新機能
- Morph Swaps 機能の標準搭載
- DOM差分を検知し最小限の変更で要素を更新
- <hx-partial>タグ の追加
- out-of-band swapに似るが、より明確な部分更新を実現
- 例:
<hx-partial hx-target="#messages" hx-swap="beforeend">...</hx-partial>
拡張機能とエコシステム
- fetch()移行 により拡張機能の設計を刷新
- 主な新・更新拡張
- hx-preload :マウスオーバー等で事前ロード
- hx-download :ファイルダウンロードにfetch()活用
- hx-alpine-compat :Alpine.jsとの互換性向上
- hx-history-cache :sessionStorage利用の履歴キャッシュ
- hx-sse :Server-Sent Events対応
- hx-ws :WebSocket対応
- hx-multipart :multipart/mixedストリーミング対応
- hx-live :Alpine.jsやjQueryに着想を得たスクリプト拡張
- DOMベースのHATEOASリアクティビティ対応
- htmax.jsバンドル :人気拡張を一括パッケージ
アップグレード方法
- 公式アップグレードガイド とコマンドラインツール提供
- 例:
$ npx htmx.org@4.0.0 upgrade-check -- ./templates - 対応拡張子: .html, .php, .js, .ts, .jinja, .jinja2, .j2, .erb, .hbs等
- 各種非推奨・削除属性やイベント名の検出・修正案提示
- 例:
- エージェントスキル によるアップグレード支援
- インストール方法
- パッケージマネージャで4.0.0指定
- CDN:
<script src="https://unpkg.com/htmx.org@4.0.0/dist/htmx.min.js"></script>
- LLM向けスキルファイル も提供
- htmx-guidance, htmx-debugging, htmx-extension-authoring, htmx-upgrade-from-htmx2
結論と謝辞
- htmx 2.xは今後も無期限サポート
- 強制的なアップグレード不要
- 開発・テスト・エコシステム拡充に貢献したチーム・協力者への感謝
- 恒例の「アップグレードミュージック」も紹介
参考:
- 公式サイト: https://htmx.org
- アップグレード詳細: What's New in htmx 4