Skip to content
阅读进度

ViewModel 到底解决什么问题? ​

返回 View 与显示链路 目录

标准回答 ​

ViewModel 用于保存屏幕级 UI 状态并组织相关业务逻辑。它让 Activity 或 Fragment 负责显示和接收操作,并在配置变化重建时保留同一作用域下的状态,避免无意义地重建页面数据。(ViewModel 概览)

机制解释 ​

想象“设备列表页面”是显示器,ViewModel 是这块页面当前的工作台:正在加载、设备列表、错误信息、选中设备都可由它管理。旋转时显示器换了一个,工作台可以继续用。普通成员变量跟旧页面一起丢失;静态变量则边界过大,难清理、难隔离。

延伸追问 ​

为什么不把所有数据都放 ViewModel?它不是数据库,也不是任意页面共享的全局仓库,更不负责直接持有 View。长连接归属和持久化应根据业务生命周期放在 Repository、会话管理或数据层。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。