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版本在行为上差异不大,主要变化集中在以下三点:
属性继承改为显式:在htmx 2中,许多属性默认会被子元素继承。而在htmx 4中,属性不再默认继承,开发者必须通过在属性名后添加
:inherited后缀来明确指定继承行为。例如,hx-confirm="Are you sure?"需要改为hx-confirm:inherited="Are you sure?"。这是从2.x升级到4.x时最主要的改动,团队提供了一个命令行工具来帮助查找需要修改的地方。事件名称标准化:htmx 4统一了事件命名格式,改为
htmx:阶段:动作[:子动作]。例如,htmx:beforeRequest变为htmx:before:request。同时,大部分错误事件被合并为htmx:error,HTTP错误响应则触发htmx:response:error。与XMLHttpRequest相关的事件以及htmx:validation:*事件已被移除。历史记录支持不再默认使用
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)或包管理器安装。
评论
根据评论内容,总结如下:
主要观点与论据:
高度认可与感谢(评论4、5、7):多数用户对HTMX表示赞赏,认为它“Great library”(评论4)、“brings me joy”(评论5),并推荐与Go、SQLite组合使用(评论5)。评论7虽对“百年服务”持保留态度,但仍肯定其价值。
技术对比与质疑:
- 与LLM生成JS的竞争(评论8):用户指出,LLM能轻松生成JavaScript,削弱了HTMX的抽象优势,自己已转向纯JS,认为“hard to justify the trade‑off”。
- 与Angular的相似性(评论9):用户质疑HTMX是否类似Angular,担心其属性过多、模板化问题。
- 版本跳跃(评论6):用户询问“Why did they skip version 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)