一、组件整体架构
RcList 体系采用容器 + 子项的双组件协作模式,这种设计让容器与子项职责分离:容器只管'怎么滚',子项只管'怎么显示',彼此不耦合。
- RcList:列表容器,负责滚动控制、边框、间距、背景色、滚动事件派发。
- RcListItem:列表子项,负责单行内容渲染,包含图标、标题、描述、角标、开关、箭头。
两者通过 @BuilderParam 插槽机制连接,组合使用时代码结构清晰:
import { RcList, RcListItem } from 'rchoui'
RcList() {
RcListItem({ rcListItemTitle: '第一项' })
RcListItem({ rcListItemTitle: '第二项' })
}
文件结构上,组件将类型定义与实现代码完全分离,遵循单一职责原则。类型文件 index.type.ets 可独立引用,方便二次封装。
rchoui/src/main/ets/dataComponents/RcList/
├── index.ets # 组件实现(RcList + RcListItem)
├── index.type.ets # 类型定义(Props、Config 接口)
└── README.md # API 文档
依赖关系方面,RcList 通过组合而非继承的方式复用内置基础组件,如 RcIcon、RcSwitch 以及全局样式配置。这有助于开发者理解组件的构建逻辑。
二、类型系统设计
在 index.type.ets 中定义了完整的类型体系,分为联合类型和接口两大类,为开发提供强约束。
| 类型名 | 类型形式 | 用途 |
|---|---|---|
RcListDirection | 联合类型 | 列表/子项排列方向 |
RcListItemThumbSize | 联合类型 | 缩略图预设尺寸 |
RcListItemLinkType | 联合类型 | 页面跳转方式 |
RcListItemValue | 联合类型 | 通用值类型 |
RcListBadgeConfig | 接口 | 角标配置 |


