用途:实现以表单为中心的 Hotwire 工作流,基于 Turbo Frames 与 Stimulus 处理创建/编辑、内联编辑、typeahead、模态表单和外部控件等场景。
主要能力:识别表单流程类型;当校验错误需原地重渲染时,用 Turbo Frame 包裹交互范围;校验失败返回 422,成功重定向返回 303;仅在 Turbo 默认行为不足时用 turbo:submit-end 处理提交后行为;重渲染时保留用户上下文(焦点、光标、选区)。
使用方式:按需选择性加载参考文件,只打开当前请求所需文件。内联编辑见 references/2024-02-27-turbo-frames-inline-edit.md;模态校验流程见 references/2024-05-21-turbo-frames-modals-validation.md;typeahead 搜索见 references/2023-11-07-turbo-frames-typeahead-search.md;带焦点处理的 typeahead 校验见 references/2025-10-20-turbo-frames-typeahead-validation.md;帧内外部表单控件见 references/2026-02-03-turbo-frames-external-form.md;Stimulus 动作参数见 references/2024-01-16-stimulus-action-parameters.md;依赖/级联选择字段见 references/2026-03-24-turbo-frames-chained-selects.md;完整目录见 references/INDEX.md。
限制与护栏:输入状态保持单一数据源,避免帧内与帧外 DOM 出现重复控件;渲染在目标 form 层级之外的控件使用 HTML form 属性;避免无防抖/节流地在每次按键触发提交逻辑;当表单响应仅更新某个帧时,提交后行为需显式定义。导航/历史/缓存、WebSocket 或 Turbo Stream 推送、媒体上传播放、通用 UX 打磨、通用 Stimulus API 设计等问题应升级到相邻技能处理。