构建你自己的 HTMX

主要观点:最近HTMX受到关注,但其约 16kb 的大小对于减少 JavaScript 量的库来说较大,Preact 仅 3kb 且在“React 替代品”空间中。尝试用不到 300 行代码实现 HTMX 的核心功能,即所谓的“微 HTMX”,并展示其基本结构和实现过程,包括收集请求体、实现hx-targethx-triggerhx-indicatorhx-swap等,最终实现的“微 HTMX”约 1.5kb 且能运行原始的活跃搜索演示,但仍遗漏很多功能。

关键信息:

  • HTMX 大小受关注,Preact 更小巧。
  • 目标是实现 80%HTMX 功能用 10%的大小。
  • “微 HTMX”核心功能代码约 300 行,最终约 1.5kb。
  • 详细阐述了实现各个 HTMX 相关功能的代码逻辑,如htmx函数、connectdisconnect函数等。

重要细节:

  • htmx函数负责发送 AJAX 请求并处理响应和替换内容。
  • connect函数设置元素的事件监听器,disconnect函数移除事件监听器。
  • 实现hx-target时通过hxQuerySelector函数处理各种目标选择器。
  • 实现hx-trigger时解析触发规格,包括处理changeddelay等修饰符。
  • 获取请求体时考虑周围表单和触发元素的name属性。
  • hx-indicator在请求时添加类,请求结束时移除。
  • hx-swap可选择不同的替换方式。

总结:通过代码实现了“微 HTMX”,展示了其基本结构和部分功能,虽未实现所有 HTMX 功能,但提供了一个可扩展的基线,让读者更好地理解 HTMX 的工作原理。

阅读 8
0 条评论