La ricomposizione spiegata
Scopra come Compose aggiorna l'interfaccia.
La ricomposizione spiegata è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 4 lezioni in totale.
Che cos'è la ricomposizione?
La ricomposizione consiste nel rieseguire le funzioni composable per aggiornare l'interfaccia utente quando cambia lo stato che hanno letto. È il meccanismo che mantiene la schermata sincronizzata con i dati.
Attivata dalle letture dello stato
Compose tiene traccia di quali composable leggono quale stato. Quando un valore di stato cambia, solo i composable che lo hanno letto vengono pianificati per la ricomposizione.
Intelligente e selettiva
La ricomposizione è selettiva: Compose cerca di rieseguire il meno possibile. Una modifica a una parte dello stato non ridisegna l'intera schermata, ma solo le parti che dipendono da essa.
Salto dell'esecuzione
Se gli input di un composable non sono cambiati, Compose può saltare completamente la sua riesecuzione. In questo modo la ricomposizione rimane efficiente anche nelle schermate complesse.
I composable vengono eseguiti spesso
Poiché la ricomposizione può verificarsi frequentemente e in qualsiasi ordine, i composable devono essere sicuri da rieseguire. Chiamarli molte volte deve produrre la stessa interfaccia per lo stesso stato.
Eviti gli effetti collaterali
Non esegua effetti collaterali (chiamate di rete, scrittura di file, modifica di variabili condivise) direttamente nel corpo di un composable. Potrebbero essere eseguiti a ogni ricomposizione. Utilizzi invece lo stato e le API per gli effetti.
// BAD: runs on every recomposition
@Composable
fun Bad() {
saveToDatabase()
Text("Hi")
}Indipendenza dall'ordine
Non può fare affidamento sul fatto che i composable vengano eseguiti in un ordine o su un thread specifico. Consideri ogni chiamata come indipendente. È questa libertà che consente a Compose di ottimizzare in modo così efficace.
Leggere e non leggere
Quando cambia uno stato, vengono ricomposti solo i composable che lo leggono. Se un Text non legge mai count, la modifica di count non lo interessa.
@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("+") }
}Cicli di ricomposizione da evitare
Scrivere nello stato durante la composizione (non all'interno di un evento) può causare un ciclo infinito di ricomposizioni. Aggiorni lo stato solo da callback come onClick, mai direttamente nel corpo.
Sembra automatico
Dal suo punto di vista, la ricomposizione è automatica. Dichiara l'interfaccia come funzione dello stato, modifica lo stato nei callback e Compose gestisce la riesecuzione dei composable corretti.
Mettere tutto insieme
Questo contatore dimostra la ricomposizione: toccando il pulsante si modifica count, Compose riesegue il composable Text che lo legge e viene visualizzato il nuovo numero.
@Composable
fun Counter() {
var count by remember { mutableStateOf(0) }
Button(onClick = { count++ }) {
Text(text = "Count: $count")
}
}Verifica rapida
Quando ricompone Compose un composable?
Riepilogo
Elementi essenziali della ricomposizione:
- Le modifiche dello stato attivano la riesecuzione dei composable che leggono quello stato.
- È selettiva e può saltare i composable invariati.
- I composable devono essere privi di effetti collaterali e sicuri da rieseguire in qualsiasi ordine.
Domande Frequenti
La lezione «La ricomposizione spiegata» è gratuita?
Sì — il testo completo di «La ricomposizione spiegata» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 4 lezioni in totale.
Cosa imparerò in «La ricomposizione spiegata»?
Scopra come Compose aggiorna l'interfaccia. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Android Academy?
Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «La ricomposizione spiegata»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Android Academy?
Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Stato con remember e mutableStateOf
- La ricomposizione spiegata
- State hoisting
- rememberSaveable