android - MVVM:复杂 View / View 模型-> 多个 LiveData 对象?

标签 android mvvm android-livedata

大多数 MVVM 示例都在处理非常简单的用户界面。

但是可以说我有一个需要更新许多 View 的 Activity (即大量数据)

正如我在其他地方所读到的,多个 ViewModel 对象是一种糟糕的模式。

因此,正如我所见,有两种解决方案:

  • 创建一个包含所有其他数据对象的单个对象(及其单个 LiveData)。
    但这有一个问题——每个更新的数据对象都会导致整个 UI 更新。
  • 创建多个对象(以及为其创建多个 LiveData 对象)。
    这意味着我需要观察每个 LiveData 对象。这种模式有问题吗?

  • 提前致谢!

    最佳答案

    您提到的第一点:是的,这不是最佳模式,但如果你有小数据,那么分离 LiveDatas 的工作量更大, yield 更少

    您提到的第二点:是的,这是更优化的,您可以为每个要更新的 View 拥有一个 LiveData 对象,并从您的 Activity 或 fragment 中观察它们。此模式中没有问题。

    关于多 View 模型:
    如果您在一个 ViewModel 中发生了太多事情(LiveData 对象或函数),那么在同一个 Activity/Fragment 中使用多个 ViewModels 模式也是一种选择。仅建议使 viewModel 更轻。因此,仅当您拥有大型 viewModel 类时才使用它

    关于android - MVVM:复杂 View / View 模型-> 多个 LiveData 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53185567/

    相关文章:

    C# TabControl不会刷新

    android - Retrofit LiveDataCallAdapter 不调用函数 adapt(call)

    android - 在 android.os.Looper 中使用 LiveData 方法 getMainLooper 进行单元测试未模拟

    java - 检查下载管理器是否下载了文件

    java - 应将什么上下文名称传递给 Glide 方法?

    design-patterns - MVVM 独特优势

    android - 如何在android中的rxjava2中进行错误处理

    android - startForegroundService() 在 Oreo 中抛出 IllegalStateException on app BOOT_COMPLETED

    android - 如何从 Android 小部件上的按钮运行 Activity ?

    javascript - CakePHP 开发人员试用 JavaScript MV*。感到困惑