用于扩展 HTML 规范的 Htmx 项目发布了 2.0 版,这是该项目自 2020 年 11 月 发布 1.0 版以来的第一个主要版本。
Htmx 2.0 取消了对 Internet Explorer 的支持,并将扩展项移出了核心存储库,这样每个扩展都可以按照自己的节奏发布更新了。新版本还删除了一些已弃用的属性,并将 HTTP DELETE 请求更改为使用参数。
新版还加入了一些新特性,包括 htmx.swap() 方法,该方法用新内容替换现有内容。它替换并改进了现有的内部 selectAndSwap() 方法。新版还改进了与 Web 组件、可重复使用的自定义元素的集成。
新版发布博文解释说,为了避免破坏现有项目,1.x 版本将在 NPM(节点包管理器)中继续标注为为“latest”,2.x 还是“next”,直到 2025 年 1 月 1 日为止。迁移到 2.0 版并不困难,但根据迁移指南,用户可能需要做一些工作。
Htmx 是一种新的前端开发方法,侧重于 HTML 而非 JavaScript(尽管它是作为 JavaScript 库实现的)。Htmx 是从之前的一个项目 intercooler.js 发展而来的,后者是由 Htmx 发明者 Carson Gross 于 2013 年创建。这两个项目的灵感都来自于这样一种观点:HTML 的特性一直因为行业对 JavaScript 框架的关注而被限制住了,而 JavaScript 框架的复杂性却一直在增长。Gross 在 2020 年推出 1.0 版时写道:“HTML 导向的 Web 开发范式被抛弃,不是因为超文本是个坏主意,而是因为 HTML 没有足够的表达能力。htmx 旨在解决这个问题,并让你可以使用 Web 的原始超文本模型实现许多常见的现代 Web UI 模式。”
Htmx 现在支持包括异步请求、CSS 转换和使用 HTML 属性的 WebSocket 通信在内的特性。
尽管 Htmx 仍然不如 React 或 Angular 等框架那么出名,但它还是收获了开发人员的赞赏。之前就有人提到,“我绞尽脑汁想找出一个没有过度设计的 js 框架,找到 htmx 让我非常高兴”。另一个人则表示“Htmx 简直太棒了。我们正用它来完成一个重大项目。”
Gross 参与了 Hacker News 上的讨论并回答了问题。有人问他,是否在设法将 Htmx 的一些特性推向 HTML 标准?“我们正在与 Chrome 开发人员讨论这些想法,我持谨慎乐观的态度”,Gross 说。
Htmx 使用的是 XMLHttpRequest,而非更新、更强大的 fetch API。有人问,团队是否考虑过改用 fetch?“看过了,不幸的是 fetch() 和 xhr 有一组不相交的特性(特别是 xhr 的上传进度),所以我们决定不碰它”,Gross 回答道。
该项目在 GitHub 上根据 Zero-Clause BSD 许可开源。
原文链接:
https://devclass.com/2024/06/18/htmx-2-0-released-aims-to-replace-complex-javascript-frameworks-with-easily-understood-html-attributes/
声明:本文为 InfoQ 翻译,未经许可禁止转载。