Changes in htmx 4.0
4 months ago
- #javascript
- #web-development
- #htmx
- htmx 4.0 使用 fetch() API 进行了完全重写,取代了 XMLHttpRequest。
- 显式属性继承现为默认行为,使用 `:inherited` 修饰符实现。
- 事件命名规范改为 `htmx:阶段:动作[:子动作]` 以保持一致性。
- 历史记录存储不再使用 `localStorage`;导航时执行完整页面刷新。
- 非200响应现在默认执行内容替换(204和304状态码除外)。
- 新增变形交换样式(`innerMorph`/`outerMorph`)以更好地保留DOM状态。
- 内置流式响应支持,并改进了SSE事件处理。
- 默认启用View Transitions API实现动画化DOM状态过渡。
- 新增脚本API提供更好的async/await支持和自定义JavaScript集成。
- 统一请求上下文(`ctx`对象)确保事件处理一致性。
- 引入现代化交换术语(`before`/`after`/`prepend`/`append`)。
- 新增 `:append` 修饰符实现属性值的追加式继承。
- 通过 `hx-status:XXX` 属性实现HTTP状态码条件化内容替换。
- 新增 `<hx-partial>` 标签支持单次响应中的多目标替换。
- 多个属性被重命名或移除,新增如 `hx-action` 和 `hx-method` 等属性。
- 更新事件名称确保一致性,新增生命周期事件提升控制力。
- 扩展现在全局注册,不再需要 `hx-ext` 属性声明。