Android MVVM Livedata 最佳实践

标签 android architecture viewmodel android-livedata

我正在体验来自谷歌的新架构组件,即 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/

相关文章:

java - 捕获的帧在服务器中向右旋转 90 度

android - 在按钮上同时使用 setOnTouchListener 和 setOnClickListener

architecture - 什么取代了 SADT?

android - 即使在postValue()Kotlin之后,MutableLiveData ArrayList也为空

wpf - 用户控件应该有自己的 View 模型吗?

java - 在 POS/ESC 热敏打印机 Android 上打印图像

android - Mac Eclipse 不解析 NDK 中的 C++ lib 函数

java - 可维护、可扩展和模块化实际上意味着什么?

Angular Material 对话框和 ngrx

java - 与EditText冲突: Watcher to the View + Observer to the MutableLiveData