SKILL

compose-multiplatform-patterns

KMP项目中的Compose Multiplatform和Jetpack Compose模式——状态管理、导航、主题化、性能优化和平台特定UI。

适用对象:对象待分类。自动收录 · 待核查。

原作者说明节选

从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。

查看中文原文

原文涵盖的主题

  • Compose 多平台模式
  • 何时启用
  • 状态管理
  • ViewModel + 单一状态对象
  • 在 Compose 中收集状态
  • 事件接收器模式
  • 导航
  • 类型安全导航(Compose Navigation 2.8+)

使用 Compose Multiplatform 和 Jetpack Compose 构建跨 Android、iOS、桌面和 Web 的共享 UI 的模式。涵盖状态管理、导航、主题和性能。 构建 Compose UI(Jetpack Compose 或 Compose Multiplatform) 使用 ViewModel 和 Compose 状态管理 UI 状态 在 KMP 或 Android 项目中实现导航 设计可复用的可组合项和设计系统 优化重组和渲染性能 使用单个数据类表示屏幕状态。将其暴露为 StateFlow 并在 Compose 中收集: 对于复杂屏幕,使用密封接口表示事件,而非多个回调 lambda: 将路由定义为 @Serializable 对象: 使用 dialog() 和覆盖层模式,而非命令式的显示/隐藏: 使用槽位参数设计可组合项以获得灵活性: 修饰符顺序很重要 —— 按此顺序应用: 当所有属性都稳定时,将类标记为 @Stable 或 @Immutable: 在 ViewModel 中使用 mutableStateOf,而 MutableStateFlow 配合 collectAsStateWithLifecycle 对生命周期更安全 将 NavController 深入传递到可组合项中 —— 应传递 lambda 回调 在 @Composable 函数中进行繁重计算 —— 应移至 ViewModel 或 remember {} 使用 LaunchedEffect(Unit) 作为 ViewModel 初始化的替代 —— 在某些设置中,它会在配置更改时重新运行 在可组合项参数中创建新的对象实例 —— 会导致不必要的重组 查看技能:android-clean-architecture 了解模块结构和分层。 查看技能:kotlin-coroutines-flows 了解协程和 Flow 模式。

来源仓库
affaan-m/ECC
源文件
docs/zh-CN/skills/compose-multiplatform-patterns/SKILL.md
固定版本
d2ef2680594f9a17526a6e1a2e18b3d242c5d17b
阅读完整原作者说明 ↗

准备条件

  • 本条仅收录原作者的技能元数据;请阅读完整说明,确认依赖、许可与使用条件。

第一件可以尝试的小事

先阅读原作者说明,再决定是否在自己的 AI 工具中使用。

对应 AI 工具说明

作者有说明不等于本站实机验证。没有证据时,不自动标为兼容、安全或免费。

来源与内容状态

本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。

原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T14:01:50.221Z。

分类由名称、说明与路径规则生成,分类不代表已核实适配。

许可与权利归属

MIT。第三方内容及版权归原作者,使用条件以原文为准。

许可原文 ↗

本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。

限制与注意事项

  • 元数据收录不代表本站已经安装、适配、实测或进行安全审查。