用途:为构建灵活、可维护的 React 组件提供组合模式指导,重点解决布尔属性膨胀问题,通过复合组件、状态提升与内部组合来设计组件 API。适用场景包括重构含大量布尔属性的组件、构建可复用组件库、设计灵活的组件 API、评审组件架构,以及处理复合组件或 context provider。
范围:覆盖可复用组件 API、复合组件、显式变体,以及 React 19 的 ref 与 use() 变化。不涉及视觉方向(属 frontend-design),也不涉及 Next.js 缓存或 RSC 数据获取(属 next-v16、vercel-react)。
原则与约束:优先组合而非布尔配置;仅在兄弟组件需要时提升客户端 UI 状态,服务端数据保留在服务端;在第二个调用点出现后再提取共享原语。必须:复合组件只在共享 UI 包或 2 个以上调用点时提取;让 React Server Components 自行获取数据,把服务端渲染的 children 传入客户端叶子,而非把数据提升到客户端 provider;URL 可共享状态、异步服务端状态和分组本地 UI 状态继续使用项目已有库。建议:除非父组件需要挂 ref,否则跳过 forwardRef;用显式变体组件替代 isX 布尔模式;优先 children 而非 renderX 属性。避免:对一次性屏幕做过早抽象;只负责转发 RSC 属性的客户端 provider;为“组合”而破坏现有 'use client' 位置。
规则按优先级分为组件架构(HIGH)、状态管理(MEDIUM)、实现模式(MEDIUM)与 React 19 API(MEDIUM)。各规则详见 rules/ 目录下对应文件,含原因、正反示例与补充说明;完整汇编见 references/compiled.md。React 19 部分仅适用于 React 19+,React 18 及更早可跳过。