我正在体验来自谷歌的新架构组件,即 LiveData 和 ViewModel。通过结合这两个 API,我们可以让 View 模型以 react 的方式监听和更新数据。
我的问题是如何更具体地在 ViewModel 中表示数据,将数据分解为单独的字段之间哪种方式更好,如下所示
class UserViewMode : ViewModel() {
var name = MutableLiveData<String>
vat lastName = MutableLiveData<String>
}
或者通过将数据封装在包含姓名和姓氏的数据持有者/模型类中,并让 View 模型在 LiveData 观察者中观察此模型类,如下所示
class UserViewMode : ViewModel() {
var user = MutableLiveData<User>
}
提前致谢。
最佳答案
第二种方法更好。
class UserViewModel : ViewModel() {
var user = MutableLiveData<User>
}
因为将数据封装在模型(用户)对象中比将所有数据分开要好。
我能看到的主要优点是
1. 干净的代码和架构。
2. 模型对象可以在 GSON(将数据解析为模型对象)、Room 数据库等其他组件之间使用/传递。
如果有多个 User 对象并且它们需要在 RecyclerView 中呈现,那么您必须将数据封装到一个对象中。否则,代码会与多个列表混为一谈。
关于Android MVVM Livedata 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53457923/