用途:为 Ruby on Rails 应用在使用 Hotwire(Turbo + Stimulus)构建交互体验时提供社区最佳实践,遵循“One Person Framework”思路——服务端渲染 HTML,Turbo 让它像 SPA,Stimulus 在需要处补充 JS。共 53 条规则、分 9 类,按影响优先级排序,可用于指导自动化重构与代码生成。
主要能力与规则分类:
- 导航与 Drive(CRITICAL,前缀 drive-):链接预取、表单提交、访问动作与历史、缓存控制、按页面禁用、进度条、确认对话框、错误恢复。
- Turbo Frames(CRITICAL,frame-):懒加载、作用域导航、src 动态内容、跳出、提升为整页访问、dom_id 标识、加载空状态。
- Turbo Streams(HIGH,stream-):渐进增强回退、动作选择、多目标更新、HTTP 交付、WebSocket 源、自定义动作。
- 广播与实时(HIGH,bcast-):broadcasts_refreshes、去抖防 N+1 广播风暴、按账号/用户作用域、刷新优先于细粒度替换、避免在模型中写视图逻辑、签名流名、断线重连。
- Morphing 与页面刷新(HIGH,morph-):启用刷新、标记永久元素、保留滚动、Stimulus 重连、frame refresh='morph'、morph 与 streams 取舍。
- 性能(MEDIUM-HIGH,perf-):乐观 UI、批量流更新、Frame 片段缓存、昂贵端点禁用预取、清理订阅与监听器。
- Stimulus 模式(MEDIUM-HIGH,stim-):outlets 通信、Values 响应式状态、声明式动作描述符、小而可复用的控制器。
- 架构决策(MEDIUM,arch-):渐进增强层次、Frame 与 Stream 选择、importmap 固定依赖、状态留在服务端、Stimulus 边界。
- 测试(MEDIUM,test-):系统测试等待 Turbo 更新、集成测试流断言、广播断言、Frame 导航断言、WebSocket 时序。
使用方式:按需查阅对应规则文件;规则模板与章节定义见 assets/templates/_template.md 与 references/_sections.md,元数据见 metadata.json。
适用场景:配置 Turbo Drive 导航、预取与缓存;添加 Turbo Frames 局部更新与懒加载;交付 Turbo Streams;通过 ActionCable 广播实时更新;启用 Turbo 8 morphing;编写 Stimulus 控制器;处理 Turbo 导航、Frame 与 WebSocket 错误;在多种方案间选型;以及编写系统与集成测试。
限制:资料未提供具体安装命令、版本要求、价格或平台信息(暂未提供)。