【问题标题】:When to use multiple ViewModels vs shared ViewModel in Android?何时在 Android 中使用多个 ViewModel 与共享 ViewModel?
【发布时间】:2021-03-06 19:29:09
【问题描述】:

最近,我偶然发现了共享 ViewModel 的概念,这让我很感兴趣,因为我似乎正在为我的片段编写相同的 ViewModel。

例如,我有一系列带有 RecyclerViews 的片段,它们可以导航:

Main List -> Sub List -> Item List -> Item Details。 每个片段都有自己的ViewModel,但是列表是从同一个存储库中填充的,该存储库是从同一个数据库中提取的。正在执行的唯一操作是各种 get 命令,用户不会对数据库进行任何修改。

在这种情况下,将我的所有存储库查询放在一个列表 ViewModel 中是否有意义?

google doc 看来,这听起来更像是在屏幕上有多个片段的情况下共享数据。我可以看到如何使用它来将所选项目从一个片段发送到下一个片段,但我已经通过Navigation safeArgs 很好地实现了这一点。

【问题讨论】:

    标签: android android-viewmodel


    【解决方案1】:

    这可能取决于你的情况。例如,如果您的应用程序具有复杂的状态并且总是通过safeArgs 从片段推送到片段并不好,那么将状态保留在共享视图模型中会很好,因为序列化/反序列化需要时间,而且您必须控制实际状态在哪里。但是,通过多个片段视图模型共享一个公共共享,可以作为您状态的单一事实来源。

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多