SuperAPI AI 工具集

react-composition

前端与建站

查看项目

更新于 10-16 01:48

技能介绍

本资料是一份 React 组件组合模式(Composition)指南,核心理念是“组合优于配置”:组件需要新行为时,不应不断增加布尔属性,而应组合更小的部件。

主要能力与模式:

  1. Compound Components(复合组件):通过 context 共享隐式状态,子组件各自有意义。示例中 Tabs 根组件持有 activeTab 状态,TabTrigger 与 TabContent 消费 context,并挂载为 Tabs.Trigger、Tabs.Content。
  2. Explicit Variants(显式变体):用独立的变体组件替代布尔开关,如 Input.Bordered、Input.Underlined、Input.Ghost,基于共享基础组件与不同样式实现。
  3. Children Over Render Props:优先用 children 组合;仅当子元素需要父组件数据时才使用 render prop(如 Combobox)。
  4. Context 接口设计:将状态、动作与元数据分离,例如 FormContext 中区分只读状态 values/errors/touched、稳定动作 setValue/validate/submit 及 isSubmitting 等元数据。
  5. State Lifting:当兄弟组件需共享状态时,把状态提升到 Provider,避免 prop drilling。

React 19 API:可直接把 ref 作为普通 prop 传入,无需 forwardRef;使用 use(Context) 代替 useContext,可在条件与循环中调用。

资料还给出决策指南(如 3 个以上布尔布局属性用复合组件、同一组件多种视觉模式用显式变体、兄弟共享状态用 context provider)与反模式清单(布尔属性爆炸、renderHeader/renderFooter、深层嵌套 provider、用 React.cloneElement 注入、单一巨型 context)。

限制与未提供内容:资料未说明安装方式、依赖版本、许可证、价格、平台支持或具体使用步骤,也未提供完整的可运行工程配置。示例代码为片段,实际采用时需自行补全类型与样式依赖(如 cn 工具)。