最近在搞一个基于 Compose 实现的低代码跨平台项目,涉及到一些 Compose 运行时的一些机制问题,周末写了个 demo 验证总结一下,总体是与过往经验相符的,也发现了一些小的细节是以前不太清楚的,可以一起学习研究一下,如有错误欢迎指正!
remember 简介
先贴一段 GPT4 给的简介:
remember 是 Jetpack Compose 中的一个核心函数,它用于记住那些你不希望在重组(recomposition)时重新创建的数据。举个例子,这可能是一种状态、一个对象实例或一个计算成本较高的结果。它有助于保持性能并避免不必要的计算。
使用示例
先看测试代码:
@Composable
fun ContentView(index: Int) {
val item = remember {
mutableStateOf(DataA()).also {
Log.d("Test", "ContentView in remember, item=$it")
}
}
Column(
modifier = Modifier
.fillMaxSize()
.border(3.dp, Color.Cyan)
) {
Text(text =