Android 的MVVM、databinding、 liveData 概念

随着前端的兴起,各种框架称出不穷,angular、react、vue 都支持数据双向绑定,Android 也不会落后,如今最火热MVVM 模式就是支持数据双向绑定的。

以上是转换databindding的快捷方法描述
该方法可以转换data binding 布局,自动生成layout data 布局。
Model
这里需要引入一个新概念 LiveData ,其中 T 是你的JavaBean 也就是需要显示到 XML 里面的数据
这就是一个LiveData
这就是数据绑定方式

Model层就是职责数据的存储、读取网络数据、操作数据库数据以及I/O,一般会有一个ViewModel对象来调用获取这一部分的数据。

View
View层做的仅仅和UI相关的工作,我们只在XML、Activity、Fragment写View层的代码,View层不做和业务相关的事,也就是我们的Activity 不写和业务逻辑相关代码,一般Activity不写更新UI的代码,如果非得要写,那更新的UI必须和业务逻辑和数据是没有关系的,只是单纯UI逻辑来更新UI,比如:滑动时头部颜色渐变、editttext根据输入内容显示隐藏等,简单的说:View层不做任何业务逻辑、不涉及操作数据、不处理数据、UI和数据严格的分开

ViewModel
ViewModel 只做和业务逻辑和业务数据相关的事,不做任何和UI、控件相关的事,ViewModel 层不会持有任何控件的引用,更不会在ViewModel中通过UI控件的引用去做更新UI的事情。ViewModel就是专注于业务的逻辑处理,操作的也都是对数据进行操作,这些个数据源绑定在相应的控件上会自动去更改UI,开发者不需要关心更新UI的事情。

其中 ViewModel 持有 mode对象(数据提供者) 和 View对象(只做Toast,对话框显示,不需要了解view 里面有哪些控件,也不会绑定事件等)

而刷新数据只需要使用 LiveData.value = 新数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值