SuperAPI AI 工具集

hotwire-coder

通用与其它

查看项目

更新于 10-16 00:03

技能介绍

用途:在 Rails 应用中实现 Hotwire 功能,让服务端直接传输 HTML 而非 JSON,减少全页刷新与手写前端状态管理。

主要能力:Turbo Drive 加速导航,通过替换 <body> 完成跳转,并支持 data: { turbo: false } 选择性退出;Turbo Frames 将页面拆分为独立上下文,支持懒加载(loading="lazy"、src)、跳出框架(data: { turbo_frame: "top" })与内联编辑等模式;Turbo Streams 由服务端经 HTTP 或 WebSocket 下发局部更新,提供 append、replace、remove 等动作;支持实时广播(broadcast_append_to、broadcast_replace_to、broadcast_remove_to 等 after*_commit 回调);支持 Turbo 8 morphing,通过 meta 标签 turbo-refresh-method 与 turbo-refresh-scroll 配置刷新方式与滚动保持。

必要用法:控制器按格式响应,如 format.turbo_stream 与 format.html 跳转;视图使用 turbo_frame、turbo_stream 标签及对应模板;需要实时更新时在模型中添加广播回调;页面中可用 turbo_stream_from 订阅广播;调试可调用 Turbo.setDebug(true) 并监听 turbo:frame-missing 事件。

适用场景:Rails 项目中的局部刷新、模态框、无限滚动、内联编辑、实时评论列表等。

限制:实时部分依赖 Action Cable,资料指出其提供至多一次投递,重连时可能丢块;若需要 LLM 流式或投递保证,应参考 anycable-coder 技能。需注意 frame ID 匹配、返回正确状态码(如 422/303)以及广播中显式传入 request_id: nil,否则会出现静默失败或运行时错误。