我很高兴地宣布 htmx 的 1.0.0 版本 已发布。
htmx 现在已经足够成熟,我可以推荐它作为 intercooler.js 项目的通用替代品。我 不 认为有强烈的理由将现有的 intercooler 项目移植到 htmx。我有几个大型的 intercooler 应用,并且不会很快迁移它们。然而,我可以推荐在新项目中使用 htmx 而非 intercooler。
htmx 是一种不同的 javascript 库。它是对当前基于 javascript 的 SPA 库主导地位的 HTML 和超文本导向回应。它是对 Tom MacWright 的问题 “If not SPAs, What?” 的回应。
如 主页所述:
<a> 和 <form> 能够发出 HTTP 请求?click 和 submit 事件能够触发它们?以 HTML 为导向的 web 开发被放弃,不是因为超文本是个坏主意,而是因为 HTML 缺乏足够的表达能力。htmx 旨在修复这一点,并允许你使用 web 的原始超文本模型来实现 许多常见的现代 web UI 模式。
htmx 的起源是 intercooler.js,它始于 2013 年。
在今年 四月,我开始开发一个独立于 jQuery 且改进的 intercoolerjs 版本,并将其重命名为 htmx。我选择重命名这个库,因为在开发 intercooler 的过程中,我认识到 intercooler 和 htmx 是在完善 HTML 作为超文本,而不是一些古怪的特立独行的 javascript 库。
在 五月,htmx 达到了 0.0.1 版本。不久之后,我有幸被 Ben Croker 联系,他对将 htmx 作为他新响应式库 Sprig 的基础感兴趣。Ben 愿意成为 htmx 的早期采用者,并推动库的发展速度远超原本。
我非常幸运地获得了 GitHub 和 Discord 上许多贡献者的帮助和反馈。我要特别感谢 Ben Pate、Robert Schroll 和 Alejandro Schmeichler,他们贡献了代码以及新想法和讨论。
我要感谢 Devmode.fm 邀请我 谈论 htmx,并清理了我所有的“呃”和“嗯”。
最后,我要感谢 Justin Sampson,他花了很多时间向我解释 REST 和 HATEOAS,以及 intercooler(现在是 htmx)如何融入 web 开发的这个模型。
享受吧!