Recomposition erklärt
Erfahren Sie, wie Compose die UI aktualisiert.
Recomposition erklärt ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist Rekomposition?
Rekomposition bedeutet, dass Compose Ihre Composable-Funktionen erneut ausführt, um die Benutzeroberfläche zu aktualisieren, wenn sich der von ihnen gelesene Zustand ändert. So bleibt der Bildschirm mit Ihren Daten synchron.
Durch das Lesen des Zustands ausgelöst
Compose verfolgt, welche Composables welchen Zustand lesen. Wenn sich ein Zustandswert ändert, werden nur die Composables, die ihn gelesen haben, zur Rekomposition eingeplant.
Intelligent und selektiv
Rekomposition ist selektiv: Compose versucht, so wenig wie möglich erneut auszuführen. Eine Änderung an einem Zustandswert zeichnet nicht den gesamten Bildschirm neu — nur die davon abhängigen Teile.
Überspringen
Wenn sich die Eingaben eines Composables nicht geändert haben, kann Compose die erneute Ausführung vollständig überspringen. Dadurch bleibt Rekomposition auch auf komplexen Bildschirmen kostengünstig.
Composables werden häufig ausgeführt
Da Rekomposition häufig und in beliebiger Reihenfolge stattfinden kann, müssen Ihre Composables sicher erneut ausführbar sein. Mehrere Aufrufe müssen für denselben Zustand dieselbe Benutzeroberfläche erzeugen.
Vermeiden Sie Seiteneffekte
Führen Sie Seiteneffekte (Netzwerkaufrufe, das Schreiben von Dateien oder das Ändern gemeinsam genutzter Variablen) nicht direkt im Körper eines Composables aus. Sie könnten bei jeder Rekomposition ausgeführt werden. Verwenden Sie stattdessen Zustands- und Effect-APIs.
// BAD: runs on every recomposition
@Composable
fun Bad() {
saveToDatabase()
Text("Hi")
}Unabhängigkeit von der Reihenfolge
Sie können sich nicht darauf verlassen, dass Composables in einer bestimmten Reihenfolge oder auf einem bestimmten Thread ausgeführt werden. Behandeln Sie jeden Aufruf als unabhängig. Diese Freiheit ermöglicht es Compose, so umfassend zu optimieren.
Lesen oder nicht lesen
Nur Composables, die einen Zustand lesen, werden bei dessen Änderung rekomponiert. Wenn ein Text niemals count liest, bleibt es bei einer Änderung von count unverändert.
@Composable
fun Demo() {
var count by remember { mutableStateOf(0) }
Text("Static") // never recomposes from count
Text("Count: $count") // recomposes when count changes
Button(onClick = { count++ }) { Text("+") }
}Zu vermeidende Rekompositionsschleifen
Das Schreiben in den Zustand während der Komposition (nicht innerhalb eines Ereignisses) kann eine endlose Rekompositionsschleife verursachen. Aktualisieren Sie den Zustand nur aus Callbacks wie onClick, niemals direkt im Körper.
Es wirkt automatisch
Aus Ihrer Sicht ist Rekomposition automatisch. Sie deklarieren die Benutzeroberfläche als Funktion des Zustands, ändern den Zustand in Callbacks und Compose kümmert sich darum, die richtigen Composables erneut auszuführen.
Alles zusammenführen
Dieser Zähler veranschaulicht Rekomposition: Durch Tippen ändert sich count, Compose führt das lesende Text erneut aus und die neue Zahl wird angezeigt.
@Composable
fun Counter() {
var count by remember { mutableStateOf(0) }
Button(onClick = { count++ }) {
Text(text = "Count: $count")
}
}Kurzer Check
Wann rekomponiert Compose ein Composable?
Zusammenfassung
Das Wichtigste zur Rekomposition:
- Zustandsänderungen lösen die erneute Ausführung der Composables aus, die diesen Zustand lesen.
- Sie ist selektiv und kann unveränderte Composables überspringen.
- Composables müssen frei von Seiteneffekten und sicher in beliebiger Reihenfolge erneut ausführbar sein.
Häufig gestellte Fragen
Ist die Lektion „Recomposition erklärt“ kostenlos?
Ja — der vollständige Text von „Recomposition erklärt“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Recomposition erklärt“?
Erfahren Sie, wie Compose die UI aktualisiert. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Recomposition erklärt“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Zustand mit remember und mutableStateOf
- Recomposition erklärt
- State Hoisting
- rememberSaveable