主要观点:最近HTMX受到关注,但其约 16kb 的大小对于减少 JavaScript 量的库来说较大,Preact 仅 3kb 且在“React 替代品”空间中。尝试用不到 300 行代码实现 HTMX 的核心功能,即所谓的“微 HTMX”,并展示其基本结构和实现过程,包括收集请求体、实现hx-target
、hx-trigger
、hx-indicator
、hx-swap
等,最终实现的“微 HTMX”约 1.5kb 且能运行原始的活跃搜索演示,但仍遗漏很多功能。
关键信息:
- HTMX 大小受关注,Preact 更小巧。
- 目标是实现 80%HTMX 功能用 10%的大小。
- “微 HTMX”核心功能代码约 300 行,最终约 1.5kb。
- 详细阐述了实现各个 HTMX 相关功能的代码逻辑,如
htmx
函数、connect
和disconnect
函数等。
重要细节:
htmx
函数负责发送 AJAX 请求并处理响应和替换内容。connect
函数设置元素的事件监听器,disconnect
函数移除事件监听器。- 实现
hx-target
时通过hxQuerySelector
函数处理各种目标选择器。 - 实现
hx-trigger
时解析触发规格,包括处理changed
和delay
等修饰符。 - 获取请求体时考虑周围表单和触发元素的
name
属性。 hx-indicator
在请求时添加类,请求结束时移除。hx-swap
可选择不同的替换方式。
总结:通过代码实现了“微 HTMX”,展示了其基本结构和部分功能,虽未实现所有 HTMX 功能,但提供了一个可扩展的基线,让读者更好地理解 HTMX 的工作原理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。