JetpackCompose的项目结构 📝发布:2026-07-03 概述 Jetpack Compose 项目结构的核心是:UI(Composable)只负责展示,ViewModel 负责状态与逻辑,Repository 负责数据来源,UIState 负责封装状态. Jetpack Compose 项目围绕 状态流动 来设计:Repository → ViewModel → UIState → UI(Composable). UI 层(Composable) 只负责展示 不写业务逻辑 通过 collectAsState() 观察 ViewModel 的状态 通过事件回调调用 ViewModel 的函数 ViewModel ViewModel 是 MVVM 中的 “VM” 层, 负责: 保存 UI 状态(不会因旋转丢失) 使用 MutableStateFlow 更新状态 使用 StateFlow 暴露只读状态 调用 Repository 获取数据 处理 UI 事件(按钮点击、输入变化) 在 ViewModel 中, StateFlow 是 只读的状态流, MutableStateFlow 是 可写的状态流. StateFlow 只能在 UI 中观察状态: 始终有一个当前值(通过 .value 获取) 新订阅者会立即收到最新值 状态变化会自动通知所有收集者(UI) MutableStateFlow 用来在 ViewModel 中更新状态: 内部可以修改 .value. 外部通常只暴露成 StateFlow(只读). Repository 层(数据来源) 统一管理数据来源 决定从网络还是本地读取 ViewModel 不直接访问网络或数据库