用途:为 Rails 应用编写 Stimulus 控制器,用 data 属性把服务端渲染的 HTML 与 JavaScript 行为连接,实现切换、弹窗、剪贴板、flash、表单等交互。
主要能力:覆盖控制器生成与自动注册、静态声明 targets/values/classes/outlets、data 属性命名规则、action 事件与修饰符、生命周期回调(initialize/connect/disconnect 及 target、value 回调)、跨控制器通信(outlets 与自定义事件)、调试与常见问题排查。
使用方式:先用 ls app/javascript/controllers/ 与 rg 搜索已有控制器,保持项目约定;用 bin/rails generate stimulus example 生成,或手动创建 app/javascript/controllers/example_controller.js;在 HTML 中用 data-controller、data-{controller}-target、data-{controller}-{name}-value、data-{controller}-{class}-class、data-action="{event}->{controller}#{method}" 接线。调试可设 Stimulus.debug = true。
适用场景:服务端渲染视图的渐进增强、小型可组合交互、Turbo 导航下的 DOM 变化处理。
限制与注意:控制器应保持单一行为、约 80 行以内;不在 JS 中拼 HTML,用 Turbo Streams;不直接改 style,改 class 交给 CSS;connect 中的定时器、监听器、观察器必须在 disconnect 清理;HTML 属性一律 kebab-case;不硬编码 URL、时长、阈值,改用 values;业务逻辑留在服务端。资料未提供版本、依赖与安装命令等细节。