变体
弹窗有太多布尔模式
把 compact、confirm、destructive、showFooter 等属性组合改成有名称的组件组合,让调用方看得出行为。
01 / Skill 档案 · React · 组件架构
当 React 组件越来越依赖布尔属性控制行为时,这个 Skill 引导你改用组合、共享上下文与明确的变体。
原发布方 Vercel Labs · 类型: React 架构 Skill
本页为独立介绍;Vercel Labs 未对 Floatboat 作出背书。
上游安装方式
npx skills add vercel-labs/agent-skills --skill vercel-composition-patterns这是上游 Skill 的安装命令,不是 Floatboat 安装器。
原始规则主张用复合组件和 Provider 管理状态,而非让属性组合无限增加。它适合设计组件库,或梳理 API 已经难以理解的组件。
向 Agent 提问
“把这个带六个布尔属性的 Modal 重构成能支持确认和编辑流程、又不会出现意外组合的 API。”
应该得到什么
合格方案应展示新公共 API、一个迁移后的调用示例、状态归属,以及旧用法如何处理。
当组件 API 难用、难扩展时再用它,而不是为每个简单组件增加抽象。
变体
把 compact、confirm、destructive、showFooter 等属性组合改成有名称的组件组合,让调用方看得出行为。
状态
把状态与操作集中到 Provider,而不是逐层传给所有中间组件。
组件库
提供复合部件或明确变体,让使用者能组合布局,同时不必重新实现内部逻辑。
从真实调用位置出发,找出稳定部件,再把共享行为放进明确的接口。
列出现有属性组合,以及本不应该存在的组合。
使用复合组件或明确变体,让 Provider 负责共享状态。
先迁移常见和边缘调用,再移除旧接口。
02 / 使用指南
更好的 API 应暴露有意义的部件。模式选择要看组件如何被使用,而不是机械禁止所有布尔属性。
每增加一个开关,都可能与已有开关产生新的组合。这个 Skill 建议把有意义的变体写明,或让调用方组合复合部件。
大部分组合建议属于通用 React 架构。原文单独标记了 React 19 API 建议;React 18 及更早版本应跳过那部分。
查看其他 Skill 指南,并在使用前核对原始来源。