Hasty Briefsbeta

双语

Mesh: I tried Htmx, then ditched it

8 months ago
  • #HTMX
  • #Web Development
  • #Modular SSR
  • 作者探讨了当前Web开发中减少JavaScript使用、转而采用HTML属性实现交互性的趋势,并以HTMX作为典型示例。
  • 尽管欣赏HTMX的理念,作者批评其缺乏结构性,将其比作『声明式jQuery』,并预见到可能导致代码混乱的风险。
  • 针对HTMX的不足,作者开发了MESH(服务端渲染模块化元素水合方案),追求以结构化、组件化的方式实现每个组件对应单一端点。
  • MESH整合了服务端渲染与水合技术,采用Web Components和声明式Shadow DOM(DSD),但遭遇HTMX在shadow DOM边界处理上的局限性。
  • 作者探索了组件通信与更新的解决方案,包括『带外交换』(OOB)和服务器推送事件(SSE)以实现实时协作,最终通过完全移除HTMX简化架构。
  • 最终方案基于自定义元素实现模块化服务端渲染,配合极简JavaScript处理表单和SSE,形成更清晰、更易维护的代码结构。
  • 作者总结指出,HTMX适合特定场景,而MESH为模块化服务端渲染提供了更结构化且后端无关的实现路径,其理念与HotWire、LiveView等框架一脉相承。