扩展
htmx 支持扩展,以增强其提供的核心超媒体基础结构。扩展机制减轻了核心库添加新功能的压力,使其能够专注于其主要目的,即推广超媒体控件。
如果你有兴趣为 htmx 创建扩展,请参阅 构建 htmx 扩展。
htmx 扩展分为两类:
- 核心扩展 - 由 htmx 团队支持
- 社区扩展 — 得到更广泛社区的支持
核心扩展
扩展名称 | 描述 |
---|---|
head-support | 提供对 htmx 请求中 head 标签信息(样式等)合并的支持 |
htmx-1-compat | 将 htmx 2 的大部分行为更改回滚到 htmx 1 的默认设置。 |
idiomorph | 提供基于htmx 团队创建的 idiomorph 变形库 morph 的交换策略。 |
preload | 此扩展程序允许你在用户请求 HTML 片段之前将其加载到浏览器的缓存中,以便用户几乎可以立即加载其他页面。 |
response-targets | 此扩展允许你在收到不同的 HTTP 响应代码时指定要交换的不同目标元素。 |
sse | 直接从 HTML 提供对服务器发送事件的支持。 |
ws | 直接从 HTML 提供与 Web Sockets 服务器的双向通信 |
社区扩展
扩展名称 | 描述 |
---|---|
ajax-header | 为 htmx 发出的所有请求添加 X-Requested-With 头 |
alpine-morph | Alpine.js 现在有一个轻量级的 morph 插件,这个扩展允许你将其用作 htmx 中的交换机制,当你通过 htmx 交换整个 Alpine 组件时,这对于保留 Alpine 状态。 |
class-tools | class-tools 扩展允许你使用 classes 或 data-classes 属性指定将在元素上或元素外交换的 CSS 类。 |
client-side-templates | 此扩展支持通过客户端模板将 JSON/XML 请求响应转换为 HTML,然后再交换到 DOM。 |
debug | 此扩展包括通过带 DEBUG: 前缀的函数 console.debug 或 console.log 记录其所在元素的所有 htmx 事件。 |
disable-element | 当在触发请求的元素上配置时此扩展在 htmx 请求期间禁用元素。请注意,此功能现在通过属性 hx-disabled-elt 成为 htmx 核心的一部分 |
event-header | 此扩展将 Triggering-Event 头添加到请求中。HTTP 头的值是触发请求的事件的 JSON 序列化格式。 |
include-vals | 此 include-vals 扩展允许你以编程方式使用 include-vals 属性在请求中包含值。此属性的值是一个或多个名称/值对,它们将被视为 javascript 对象文字中的字段。 |
json-enc-custom | 此扩展的工作原理与 json-enc 类似,但允许非常复杂的结构,例如嵌入 JSON 对象、列表或处理索引,只需使用名称属性即可。 |
json-enc | 此扩展以 JSON 格式而不是 url 格式对参数进行编码。 |
loading-states | 此扩展允许你在请求正在进行时轻松管理加载状态,包括禁用元素以及添加和删除 CSS 类。 |
morphdom-swap | 提供基于morphdom变形库 morph 的交换策略。 |
multi-swap | 此扩展允许你交换 HTML 响应中标记的多个元素。你还可以为每个元素选择应使用的交换方法。 |
no-cache | 此扩展强制 HTMX 绕过客户端缓存并发出新请求。还添加了一个 hx-no-cache 头以允许绕过服务器端缓存。 |
path-deps | 受到 intercooler.js 依赖机制的启发,此扩展支持根据路径表达元素间的依赖关系。 |
path-params | 此扩展使用请求参数来填充路径变量。已使用的参数已被删除,因此它们将不再在查询字符串或正文中发送。 |
remove-me | 允许你在指定的间隔后删除元素。 |
replace-params | 此扩展使用请求参数替换现有参数。如果给定值为空字符串,则参数将被删除。此扩展在你只想替换少数参数而不是重置所有参数、分页、搜索等情况下非常有用,。 |
restored | 使用时检测到后退按钮时触发 hx-boost 事件 |
safe-nonce | 该safe-nonce扩展可用于提高应用程序/网站的安全性,并通过允许你安全地返回已知的受信任内联脚本来帮助避免 XSS 问题 |
signalr | 通过 SignalR 提供双向实时通信。 |
amz-content-sha256 | HTMX 扩展用于与AWS 服务交互时对内容哈希作为数据完整性验证请求的一部分。 |
hx-drag | 该扩展允许 htmx 发送拖放事件 |