Hacker News 中文摘要

RSS订阅

Htmx 4.0.0 -- Htmx 4.0.0

htmx 4.0.0 正式发布,历时8个月开发。团队将底层从 XMLHttpRequest 迁移至 fetch() API,以支持流式 HTML 等新特性。新版本在保持向后兼容的同时,优化了异步处理能力,行为变化较小。

正文

好的,这是根据您的要求,对原文进行的中文重述,保留了核心细节并删除了与主题无关的内容(如升级音乐、致谢名单等):


标题:htmx 4.0.0 正式发布!

经过8个月的开发,htmx团队很高兴地宣布htmx 4.0.0版本正式发布。此次升级的契机源于开发者对fetch() API和JavaScript异步编程的深入了解,并受到Christian关于HTML流式传输想法的启发,最终决定将内部核心从XMLHttpRequest迁移至fetch()。

从用户角度看,htmx 4与2.x版本在行为上差异不大,主要变化集中在以下三点:

  1. 属性继承改为显式:在htmx 2中,许多属性默认会被子元素继承。而在htmx 4中,属性不再默认继承,开发者必须通过在属性名后添加:inherited后缀来明确指定继承行为。例如,hx-confirm="Are you sure?" 需要改为 hx-confirm:inherited="Are you sure?"。这是从2.x升级到4.x时最主要的改动,团队提供了一个命令行工具来帮助查找需要修改的地方。

  2. 事件名称标准化:htmx 4统一了事件命名格式,改为 htmx:阶段:动作[:子动作]。例如,htmx:beforeRequest 变为 htmx:before:request。同时,大部分错误事件被合并为 htmx:error,HTTP错误响应则触发 htmx:response:error。与XMLHttpRequest相关的事件以及htmx:validation:*事件已被移除。

  3. 历史记录支持不再默认使用localStorage:htmx 2使用localStorage缓存页面快照,但容易因第三方JavaScript库的DOM操作导致问题。htmx 4改为在返回导航时重新请求页面并直接替换<body>内容,这使得第三方库能更好地工作。如果需要本地缓存,可以使用新增的hx-history-cache扩展。

新特性方面,htmx 4带来了两大亮点:

  • 内置变形交换(Morph Swaps):现在可以直接使用htmx进行元素级别的DOM变形更新,无需额外插件。
  • <hx-partial> 标签:这个新标签类似于带外交换,但更清晰,允许在单个响应中针对不同目标元素进行多种不同的内容替换。

此外,由于迁移到了fetch(),htmx 4的扩展生态也焕然一新,新增了包括hx-preload(预加载)、hx-download(文件下载)、hx-alpine-compat(与Alpine.js兼容)以及多个流式HTML扩展(如hx-sse、hx-ws、hx-multipart)。团队还推出了一个与htmx紧密集成的轻量级前端脚本解决方案hx-live。

升级与安装:团队提供了升级检查工具(npx htmx.org@4.0.0 upgrade-check)和AI助手技能文件来辅助迁移。htmx 2.x版本将继续获得支持,用户无需强制升级。htmx 4.0.0可通过CDN链接(如https://unpkg.com/htmx.org@4.0.0/dist/htmx.min.js)或包管理器安装。

评论

根据评论内容,总结如下:

主要观点与论据:

  1. 高度认可与感谢(评论4、5、7):多数用户对HTMX表示赞赏,认为它“Great library”(评论4)、“brings me joy”(评论5),并推荐与Go、SQLite组合使用(评论5)。评论7虽对“百年服务”持保留态度,但仍肯定其价值。

  2. 技术对比与质疑:

    • 与LLM生成JS的竞争(评论8):用户指出,LLM能轻松生成JavaScript,削弱了HTMX的抽象优势,自己已转向纯JS,认为“hard to justify the trade‑off”。
    • 与Angular的相似性(评论9):用户质疑HTMX是否类似Angular,担心其属性过多、模板化问题。
    • 版本跳跃(评论6):用户询问“Why did they skip version 3?”。
  3. 细节与疑问(评论1、3):评论1指出发布图片与Omarchy Quattro相同,评论3发现文档中“hx-disinherit”描述缺失。

平衡性总结: - 正面:HTMX被赞为易用、高效,尤其适合快速构建响应式站点,用户情感积极。 - 负面/质疑:部分用户对长期适用性、与LLM的竞争、版本管理及文档细节提出疑问,但整体认可度仍高。

关键引用(保留中英文): - 正面:“Great library. Really enjoy using it.”(评论4) - 正面:“htmx brings me joy.”(评论5) - 质疑:“I’m less clear on HTMX’s advantage... hard to justify the trade‑off.”(评论8) - 质疑:“Why did they skip version 3?”(评论6)