kotlin 使用By或=时的collectAsState性能

kulphzqa  于 2023-03-19  发布在  Kotlin
关注(0)|答案(1)|浏览(221)

当uiState使用collectAsState初始化并由或=使用时,性能有何不同?
通过视图模型.uiState.collectAsState()瓦尔uiState值
对比
瓦尔uiState =查看模型.uiState.收集状态()

pbpqsu0x

pbpqsu0x1#

它基本上允许您使用getter保存以读取您的状态值,请查看下面的示例。
在您的视图模型中,您可以拥有这样的状态

val state: StateFlow<MainStates>

然后在您的视图中,如果您使用***by***操作符,则允许您直接读取状态,而无需.value

val state by viewModel.state.collectAsStateWithLifecycle()

when(state) {
    is MainStates.Loading -> {
      CircularProgressIndicator()
    }
    is MainStates.LoadedData -> {
      MainComposable((state as MainStates.LoadedData).data)
    }
  }

如果你使用***"="***,那么你需要getter(“state.value”)来访问值。

相关问题