HeadlinesBriefing favicon HeadlinesBriefing.com

htmx 4.0 リリース:主な変更点と移行

Hacker News •
×

htmx チームは 8 か月の作業を経てバージョン 4.0.0 をリリースしました。このアイデアは fixi の作成から生まれ、fetch() API と非同期プログラミングへの理解が深まりました。JavaScript は以前、後方互換性の問題により XMLHttpRequest に依存していました。Christian との偶然の連絡が HTML ストリーミングへの関心を呼び起こし、内部的に fetch() への移行が進みました。Michael と Alex の助けを得て、チームは fixi と htmx テストスイートを移植し、htmx が多くのことをなぜそのように行っていたのかを再発見し、新しい実装を古い実装と密接に整合させました。

2.x と 4.x の間の動作の違いは比較的小さく、100 年続く Web サービスをサポートするための意図的な選択がなされています。特に、4.0 は NPM で latest としてマークされておらず、バージョン管理されていない CDN に依存するユーザーにアップグレードを強制しないようにしています。代わりに、2.x が latest のままであり、4.0 は 2027 年初頭まで next として残ります。Web サイトは 4.0 を参照します。

3 つの主要な変更が際立っています。第一に、属性の継承が明示的になりました。htmx 2 では、hx-confirm などの属性はデフォルトで継承されていましたが、4.0 では :inherited を追加する必要があります(例:hx-confirm:inherited)。これは最大の移行負担ですが、コマンドラインツールが必要な変更を特定するのに役立ち、hx-disinherit は不要になりました。第二に、イベント名が htmx:phase:action[:sub-action] 形式に標準化されました(例:htmx:before:request の代わりに htmx:beforeRequest)。第三に、履歴サポートがデフォルトで localStorage を使用しなくなりましたが、これはほとんどのユーザーが気付かないでしょう。内部的には、XMLHttpRequest から fetch() への移行はユーザーにとって透過的です。

追加の変更:ほとんどのエラーイベントが htmx:error に統合され、HTTP エラーは htmx:response:error を発生させ、htmx:xhr:* イベントは削除され、htmx:validation:* イベントはネイティブブラウザの検証に置き換えられました。アップグレードチェッカーは、hx-on 属性と JavaScript 内の古いイベント名をフラグします。全体として、htmx 4.0 は内部を近代化し、動作を明確にしながら互換性を維持しています。

主要エンティティ:企業:htmx、fixi | 人物:Christian、Michael、Alex

FAQ:htmx 4.0 で最大の変更は何ですか?

最大の変更は、属性の継承が明示的になったことです。htmx 2 では、hx-confirm などの属性はデフォルトで継承されていましたが、4.0 では有効にするために :inherited(例:hx-confirm:inherited)を追加する必要があります。コマンドラインツールは、この変更が必要な場所を見つけるのに役立ちます。