Compose 编程思想
2.1、Compose 是声明式编程
2.2、可组合函数 请看下面的一个可组合函数
定义
@Composable
fun Greeting(name: String, isShowName: Boolean) {
val showName = if (isShowName) "显示" else "不显示"
Text(
text = "Hello $name $showName",
)
}
(1)可以定义一组接受数据,比如方法的参数
(2)界面元素,比如Text组件
通过这这两个部分就可以构建页面。
特点: 可组合函数中不止可以写页面,还可以将页面的逻辑写好。
VS 视图树的方式
视图树的方式,首先是xml和逻辑分开,解耦,然后想更新UI的时候, 首先要通过findViewById来找到控件,然后通过setText来设置数据。
2.3、重组
什么重组?
视图树的方式中,如果我们想要修改某个控件,需要调用控件的方法。
而在Compose中,可以调用可组合函数,这样就会导致可组合函数重组。 那么什么是重组呢? 重组就是系统根据新数据来调用可组合函数,而Compose可以重组已经更改的组件。
高效的重组?
当Compose根据新数据进行重组时,它仅仅会去调用已经可能更改的函数或者lambda, 而不会去修改其他的函数或者lambda,尽量保证最小更改原则,这样就能高效的重组了。