重新组合:什么会触发重绘
理解 Compose 何时会重新运行代码。
重新组合:什么会触发重绘 是 CoddyKit 上的免费 Jetpack Compose Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Jetpack Compose Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Jetpack Compose Academy 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
What Is Recomposition?
Recomposition is Compose re-running your Composable functions to update the screen after some state they read has changed.
Triggered by State Reads
A redraw is triggered only when a piece of state a Composable read actually changes. No state change means no recomposition.
Only Readers Re-Run
Compose is smart: it re-runs only the Composables that read the changed state, not your whole screen. This keeps updates cheap.
Recomposition Can Skip
If a Composable's inputs did not change, Compose may skip re-running it entirely. Unchanged work is simply reused.
It Can Run Out of Order
Compose may recompose Composables in any order or even in parallel. Never assume one runs before another.
It Can Run Often
Recomposition can happen frequently, even every animation frame. Your Composable code should be fast and lightweight.
Keep Composables Pure
Treat Composables as side-effect free. Avoid writing files or starting work directly in the body, since it may re-run many times.
@Composable
fun Greeting(name: String) {
Text("Hi " + name)
}Watch a Counter Recompose
Each time count changes, the Text that reads it recomposes and shows the new number, while untouched siblings stay put.
var count by remember { mutableStateOf(0) }
Text("Value: " + count)Don't Do Heavy Work Inline
Running an expensive calculation in the body repeats it on every recomposition. Move it out or remember the result.
remember Caches Computations
Wrap a costly value in remember so Compose computes it once and reuses it across recompositions instead of redoing the work.
val sorted = remember(items) { items.sorted() }Mental Model
Think of the UI as a function of state. Change the state, Compose recomputes the affected parts, and the screen follows.
Quick Check
What actually triggers a recomposition?
Recap
You now know recomposition re-runs only the readers of changed state, can run often and out of order, so keep Composables fast and pure. 🎯
常见问题解答
「重新组合:什么会触发重绘」课时是免费的吗?
是的 — 「重新组合:什么会触发重绘」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Jetpack Compose Academy 课程的其余内容,请升级到 CoddyKit PRO。 Jetpack Compose Academy 课程共包含 4 节课。
「重新组合:什么会触发重绘」这节课中我会学到什么?
理解 Compose 何时会重新运行代码。 你通过在浏览器中直接运行的动手代码来练习 Jetpack Compose Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Jetpack Compose Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Jetpack Compose Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「重新组合:什么会触发重绘」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Jetpack Compose Academy 课中编写并运行代码吗?
能。每节 Jetpack Compose Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。