Jetpack Compose 是响应式 UI 框架。当我们更新 UI 状态时,Compose 会自动刷新 UI,将状态的变化同步到界面上。这个过程是自动的,不需要我们手动调用setText
或setColor
之类的方法。
为了实现响应式,Jetpack Compose 使用State
对象来感知 UI 状态的变化。
这篇文章会介绍所有和 Compose 的 State (状态) 相关的内容,包括:
- 什么是状态
- 如何创建状态
- 如何使用状态
- 有状态和无状态可组合项 (composable)
另外,在这篇文章的最后,还附加了额外的内容,不要错过 :-)
Jetpack Compose 中的状态State
是什么
在 Jetpack 中,state
表示一个和 UI 状态相关的值。每当状态发生改变,Jetpack Compose 都会自动刷新 UI。
State
的值可以是任意类型:如像Boolean
或者String
一样的简单的基础类型,也可以是一个包含整个渲染到屏幕上的 UI 状态的复杂数据类型。
为了让 Compose 能够感知到状态变化,状态的值需要包装到一个State
对象里。Jetpack Compose 提供的mutableStateOf()
函数就能帮我们完成这个包装操作。这个函数会返回一个MutableState<T>
实例,Compose 会跟踪这个实例的变化,在值被修改时进行 UI 更新。