想象写一个搜索通讯录的界面,传统的Android开发写这个界面需要多少代码?activity一个xml,item一个xml,封装一个recyclerview,再写一个Adapter,写了这么多,可能还费力不讨好,xml转成view的过程中,IO和反射影响了性能,界面再复杂一些,走异步layout还是x2c?而在compose中,可能只需要下面这段简短的代码,并且没有xml的性能问题。
如上图,在Compose中,不断的方法调方法,就完成了UI的组装。
提到Compose,就不得不了解什么是声明式编程。
![](https://img-blog.csdnimg.cn/img_convert/e2ffa645f1add2806c8aae45bd2ec08a.pn
g)
我们来看一下维基百科的解释,声明式编程是一种编程范式,表达逻辑但不描述具体控制流程。就是告诉计算机我想要什么,而不是告诉它怎么做。那对应到Android就是我想要一个什么样的UI,而不是这个UI应该如何改变,当然UI的自动改变需要框架的支持。
声明式编程在React、Flutter等框架中已经有广泛的应用,声明状态,状态变化,UI自动重绘。