Kotlin Compose 重组
Posted 安果移不动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin Compose 重组相关的知识,希望对你有一定的参考价值。
重组,指的是任何Composable函数在任何时候都可以被重新调用,如果您有一个庞大的Composable层级结构,当您的层级中的某一部分发生改变时,您不会希望重新计算整个层级结构,所以Composable函数时可重新启动的(restartbale)的
您可以利用这一特性来实现一些强大的功能。
举个例子
这里有一个Bind函数 里面是一些android开发的常见代码
fun bind(liveMsgs: LiveData<MessageData>)
liveMsgs.observe(this) nsgs->
updateBody(msgs)
我们有一个LiveData,并且希望视图可以订阅它,为此,我们调用observe方法并传入一个LifecycleOwner,并在接下来传入lambda。lambda会在每次LiveData更新被调用,并且发生这种情况时,我们会想要更新视图
使用Compose
@Composable
fun bind(liveMsgs: LiveData<MessageData>)
val msgs by liveMsgs.observeAsState()
for (msg in msgs)
Message(msg)
Compose 提供了一种现代方法来定义您的ui
。。现代有点像flutter swiftUi
这是您可以有效的关注点分离。
由于Composable函数与普通Kotlin函数很相似。因此您使用Compose编写和重构UI所使用的工具
与您进行Android开发的知识储备将会无缝衔接。
以上是关于Kotlin Compose 重组的主要内容,如果未能解决你的问题,请参考以下文章
Jetpack Compose:更新列表元素内容时不会发生重组
Compose 类型稳定性注解:@Stable & @Immutable
Compose 类型稳定性注解:@Stable & @Immutable
Kotlin Compose 状态恢复 rememberSaveable 与 remember