前端开发
重构布尔属性膨胀的 React 组件时…
在重构充满布尔 props 的组件、构建可复用组件库或设计灵活组件 API 时,用组合、复合组件与状态提升来替代布尔属性。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
重构布尔属性膨胀的 React 组件时,通用
解决思路
- 避免添加布尔 props 来定制行为,改用组合(composition)实现定制。
- 用共享 context 构建复合组件(compound components),组织复杂组件的结构。
- 让 Provider 成为唯一知道状态如何被管理的地方,实现状态实现细节的解耦。
- 定义包含 state、actions、meta 的通用 context 接口,以支持依赖注入。
- 将状态提升到 Provider 组件中,使兄弟组件也能访问该状态。
- 创建显式的变体组件(explicit variant components)来替代布尔模式开关。
- 使用 children 进行组合,而不是使用 renderX 之类的 render props。
- 按优先级查阅规则:组件架构(HIGH)→ 状态管理(MEDIUM)→ 实现模式(MEDIUM),并阅读 rules/ 目录下的单条规则文件(如 rules/architecture-avoid-boolean-props.md、rules/state-context-interface.md)获取详细说明与代码示例。
- 如需完整展开的全部规则,参考 AGENTS.md 编译文档。