[英]hiltViewModel<ViewModel>() vs by viewModels()
[英]When to use multiple ViewModels vs shared ViewModel in Android?
最近,我偶然发现了共享 ViewModels 的概念,这让我很感兴趣,因为我似乎正在为我的片段编写相同的 ViewModels。
例如,我有一系列带有 RecyclerViews 的片段,它们可以导航:
Main List -> Sub List -> Item List -> Item Details
。 每个 Fragment 都有自己的ViewModel
,但是列表是从同一个存储库中填充的,该存储库是从同一个数据库中提取的。 唯一执行的操作是各种 get 命令,用户不对数据库进行任何修改。
在这种情况下,将我的所有存储库查询放在一个列表 ViewModel 中是否有意义?
从谷歌文档看来,这听起来更像是在屏幕上有多个片段的情况下共享数据。 我可以看到如何使用它来将所选项目从一个片段发送到下一个片段,但我已经通过Navigation safeArgs
很好地实现了这一点。
可能这取决于你有什么样的情况。 例如,将 state 保留在共享视图中 model 如果您的应用程序有一个复杂的safeArgs
并始终从一个片段推送到另一个片段,那么您必须花时间来控制序列化/反序列化不是很好的地方是实际的 state。 但是,通过多个片段视图共享一个共同点,model 可以作为 state 的单一事实来源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.