为什么我们按 Activity/Fragment 分隔 ViewModel?

Why do we separate ViewModels per Activity/Fragment?

我最近开始研究 Android 架构组件。我发现 MVVM 架构非常方便,我想掌握它。在设计我的应用程序时,我应该为不同的 activities/fragments 使用多个 ViewModel,还是应该为所有 activities/fragments 使用一个 ViewModel?这两种方法的优缺点是什么?谢谢你。

这取决于你需要保持的状态。如果您的片段彼此隔离,则可以随意为每个片段使用一个 ViewModel。如果您需要共享状态(我所说的状态是指 LiveData),那么每个 activity 都有一个 ViewModel 是合理的。但一般来说,类越小越好。

所以我建议每个片段都有一个 ViewModel,除非您需要共享 LiveData。