hiltViewModel<ViewModel>()与by viewModels()的区别

3
(这可能与问题无关,但我无法在任何地方找到答案,一直很纠结)
在创建和审查使用Dagger-Hilt的应用程序时,我注意到大多数人为了创建其ViewModel类的实例,使用了类似于以下内容的代码:
val viewModel: XViewModel by viewModels()

还有一些用途

val viewModel = hiltViewModel<XViewModel>() 

这两者有什么区别吗?
1个回答

2

两者都使用Hilt创建视图模型实例,但不同之处在于下面这个是用于为片段创建视图模型的,您不能在可组合屏幕中使用它:

val viewModel: XViewModel by viewModels()

第二个是新的,使用jetpack compose可以在一个可组合屏幕内使用它,它将创建一个视图模型实例,只要您的屏幕在导航堆栈中,它就会保持活动状态:

val viewModel = hiltViewModel<XViewModel>() 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接