脚本
虽然 htmx 鼓励使用超媒体方法来构建 Web 应用程序,但它也为客户端脚本提供了许多选项。脚本包含在 REST-ful Web 架构描述中,请参阅:Code-On-Demand。我们建议在可行的情况下,在 Web 应用程序中采用超媒体友好的脚本方法:
- 尊重 HATEOAS
- 使用事件在组件之间进行通信
- 使用孤岛将非超媒体组件与应用程序的其余部分隔离开来
- 考虑内联脚本
htmx 和脚本解决方案之间的主要集成点是 htmx 发送和可以响应的事件。请参阅 第三方 Javascript 部分中的 SortableJS 示例,以获取通过事件将 JavaScript 库与 htmx 集成的良好模板。
与 htmx 良好搭配的脚本解决方案包括:
- VanillaJS - 只需使用 JavaScript 的内置功能来挂接事件处理程序以响应 htmx 发出的事件,就可以很好地编写脚本。这是一种非常轻量且越来越流行的方法。
- AlpineJS - Alpine.js 提供了一套丰富的工具来创建复杂的前端脚本,包括响应式编程支持,同时仍然保持极轻量级。Alpine 鼓励使用我们认为与 htmx 完美匹配的“内联脚本”方法。
- jQuery - 尽管在某些圈子里历史悠久且声誉卓著,但 jQuery 与 htmx 搭配使用效果很好,特别是在已经包含大量 jQuery 的旧代码库中。
- hyperscript - Hyperscript 是一种实验性的前端脚本语言,由创建 htmx 的同一团队创建。它旨在很好地嵌入 HTML,既能响应事件,又能创建事件,并且与 htmx 配合得很好。
我们的书中有一整章题为“客户端脚本”,介绍如何将脚本集成到基于 htmx 的应用程序中。