htmx 4.0 发布:从 XMLHttpRequest 到 fetch 的进化

Htmx 4.0.0 has been released

htmx 团队正式发布了 htmx 4.0.0,这是历时 8 个月打磨的重大更新。此次升级将底层网络请求从 XMLHttpRequest 迁移至 fetch API,并重构了属性继承机制,默认不再隐式继承,需显式添加 :inherited 后缀。事件命名规范也已统一,历史功能不再依赖 localStorage,转而通过重新获取页面来确保与第三方 JavaScript 库的兼容性。新版本原生支持 morphing swaps 和 <hx-partial> 标签,并推出了 hx-live 等全新扩展,旨在打造更稳健的 100-year web services。虽然 2.x 版本仍被标记为 latest,但 htmx 4 代表了该库面向未来的技术方向。

我们在行为差异上做了一些明确的选择,这些选择旨在让基于 htmx 的应用程序处于构建百年网络服务的良好位置。
  1. dec0dedab0de

    我真的很喜欢 htmx,以及它之前的 intercooler.js。距离我上次试图说服同事使用它已经有一段时间了,也许是时候再试一次了。无论如何,我都迫不及待想试试这个新版本。

    郑重声明:我是 HTMX 的 CEO。

  2. nzoschke

    恭喜并感谢!htmx 让我感到快乐。

    我现在构建的几乎每个实验项目都以 Go、htmx 和 SQLite 起步,以保持简单、快速,同时又不失响应性。

    我在此分享了一些更多想法:

    https://housecat.com/blog/the-hugs-stack-hypermedia-unix-go-...

  3. rednb

    也许这是一种唱反调的观点,但作为一个对 .NET API 后端和前端 Angular 非常了解的人,我发现 HTMX 让事情变得更复杂了,因为它迫使我回到将展示层关注点与业务逻辑和数据关注点混合在一起的模式(基本上就是让后端生成 UI,而这正是 HTMX 的核心宗旨)。

    这并非批评,但我怀疑喜欢 HTMX 的人要么是偏好老派服务端渲染的人,要么是 React 用户。

    我只是分享我的经验,因为 HTMX 绝对是 Hacker News 上的宠儿。

    由于我主要开发真正的 SPA(单页应用),我发现如果你构建一些非琐碎的项目,管理服务端状态简直让人痛苦,这比直接用 TypeScript 要复杂得多。

    在我看来,如果你习惯使用 Angular,你会发现 HTMX 在开发体验上是一种倒退。虽然无法对 React 妄加评论,但既然它不像 Angular 那样是一个“开箱即用”的栈,我就能理解为什么很多人觉得把东西移到服务端比折腾 15 个第三方库要好得多。这是我的两点看法。

  4. threesmegiste

    这是一个深思熟虑、干净且有用的库,它的诞生并非为了攀附职场阶梯,而是自然生长起来的。我认为它成为了那些受够了不必要复杂性的开发者的解脱之声,这也助推了它的知名度。它甚至成为了 Datastar 等项目的起点。我相信它为前端领域带来了一股清新的空气。

  5. james2doyle

    > `hx-alpine-compat` - 解决 htmx 和 Alpine.js 之间的兼容性问题

    今年早些时候我在一个项目中尝试 HTMX 4 时研究过这个。我实际上发现 https://alpine-ajax.js.org/ 比 HTMX 更小,却提供了我所需要的所有功能。它是官方认可并链接的项目之一,所以我用起来很放心。

  6. miguel-muniz

    作为 HTMX 的 CEO,我从未使用过 HTMX,但我一直在关注它的发布、文章和演讲。祝贺团队。

  7. fionic

    这个网站在我的 iPhone Safari 上完全坏了。如果我在顶部点击一个锚点链接(比如“LLM”),然后试图向下滚动,因为它没有跳转到内容,它会在一秒后不断把我弹回顶部。

  8. havaloc

    在“氛围编程”(vibe coding)成为流行语之前,HTMX 让我能够极其轻松地实现类似 Ajax 的功能。这是我见过的最平易近人的库,我将永远感激它。

同日更多故事

2026-08-28