目录
  1. 1. 简介
  2. 2. 什么是ViewModel?
  3. 3. ViewModel 如何使用
  4. 4. ViewModel 数据存储实现原理
重拾Android-JetPack全家桶(三)之ViewModel界面控制器

视图与数据模型之间的桥梁 ViewModel

在页面(Activity/Fragment)功能较为单一的情况下,通常会将UI交互、数据获取等相关的业务逻辑放在一起,这也是传统MVC的开发架构。但是在页面复杂的情况下,这样做是很有问题的,不仅耦合度很高,更致命的是,一旦修改核心的东西,牵一发而动全身,因为这种开发范式不符合“SRP单一功能职责”,页面只应该负责处理用户与UI控件的交互,并将数据展示到屏幕上。与数据相关的业务逻辑应该单独处理和存放。

简介

为了更好的将只能划分清楚,谷歌为我们开发设计的Jetpack组件库里就提供了 ViewModel 类,专门用于存放应用程序页面所需的数据。ViewModel这个词可以这样理解:它是介于View(视图)和Model(数据模型POJO)之间的一个桥接。它起到了一个桥梁的作用,使得视图和数据既能够分离开,也能够保持互通。正因为此,我们很有必要去了解它背后的实现工作原理,这样才能掌握它实现存储数据的技能要点。

什么是ViewModel?

ViewModel 是具备宿主生命周期感知能力的数据存储组件,使用ViewModel保存的数据,在页面因配置【横竖屏切换、分辨率调整、权限变更、系统字体样式变更等等】变更导致的页面销毁重建,也依然存在。

ViewModel 优势

  • 页面配置更高数据不丢失
  • 生命周期感应
  • 页面之间实现数据共享

ViewModel 如何使用

首先是添加依赖项

ViewModel 数据存储实现原理

打赏
  • 微信
  • 支付宝

评论