Jetpack Compose Academy · Lezione

Rimandare la lettura dello stato

Legga lo stato più tardi per ridurre l'ambito della ricomposizione.

Lezione 3 di 413 passaggi

Rimandare la lettura dello stato è una lezione Jetpack Compose Academy gratuita su CoddyKit. Questa è la lezione 3 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 Jetpack Compose Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Jetpack Compose Academy include 4 lezioni in totale.

Leggere lo stato ha un costo

Ogni punto in cui legge un valore di stato Compose diventa un sottoscrittore. Quando lo stato cambia, ogni lettore viene ricomposto.

Ambito di ricomposizione

Il Composable più vicino che racchiude una lettura dello stato è il suo recomposition scope. Se legge a un livello alto, molte parti vengono ridisegnate insieme.

Legga più in profondità, ridisegni di meno

Se legge lo stato più in profondità, viene ricomposto solo quel piccolo Composable. Spostare la lettura verso il basso riduce la quantità di lavoro eseguita.

Il trucco della lambda

Passi una lambda che restituisce il valore invece del valore stesso. La lettura avverrà in seguito, all'interno di un ambito più ristretto.

Box(Modifier.offset { IntOffset(0, scroll.value) })

Esempio di Modifier.offset

La lambda offset legge la posizione di scorrimento durante il layout, non durante la composizione, quindi la sua animazione evita completamente la ricomposizione.

Rimandare con derivedStateOf

derivedStateOf ricalcola il risultato solo quando questo cambia realmente, quindi una sorgente che cambia spesso aggiorna i lettori molto meno frequentemente.

val showButton by remember { derivedStateOf { scroll.value > 100 } }

Riduca il rumore

Senza derivedStateOf, un pulsante che legge direttamente lo scorrimento viene ridisegnato a ogni pixel. Con derivedStateOf, il pulsante viene ricomposto solo quando cambia il valore boolean.

Eviti di leggere nel genitore

Leggere lo stato in un parent solo per passarlo ai figli costringe il genitore e tutti i fratelli a essere ricomposti. Passi invece l'oggetto di stato.

Passi lo stato, non il valore

Passi al figlio l'intero oggetto State e gli permetta di leggerlo al proprio interno. Il genitore rimane stabile mentre si aggiorna solo il figlio.

Le liste lazy adorano il rinvio

In una LazyColumn, le letture rinviate impediscono agli aggiornamenti dello scroll di rieseguire il contenuto degli elementi, mantenendo fluide anche le liste lunghe.

Legga tardi, esegua meno

L'abitudine fondamentale è semplice: rimandi il momento in cui legge lo stato fino a quando ne ha bisogno l'ambito più piccolo possibile.

Verifica rapida

Verifichi il concetto del rinvio.

Riepilogo: rimandare la lettura

Legga lo stato nell'ambito più piccolo possibile, usi i modifier lambda e derivedStateOf e passi gli oggetti State ai livelli inferiori per mantenere minimi i ridisegni. ✅

Gratis per iniziare

Impara Kotlin con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Rimandare la lettura dello stato» è gratuita?

Sì — il testo completo di «Rimandare la lettura dello stato» è 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 Jetpack Compose Academy, passa a CoddyKit PRO. Il corso Jetpack Compose Academy include 4 lezioni in totale.

Cosa imparerò in «Rimandare la lettura dello stato»?

Legga lo stato più tardi per ridurre l'ambito della ricomposizione. Eserciti Jetpack Compose 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 Jetpack Compose Academy?

Non è richiesta alcuna esperienza precedente. Jetpack Compose 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 3 di 4.

Quanto tempo richiede la lezione «Rimandare la lettura dello stato»?

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 Jetpack Compose Academy?

Sì. Ogni lezione Jetpack Compose 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

  1. Parametri stabili e instabili
  2. Skipping, @Stable e @Immutable
  3. Rimandare la lettura dello stato
  4. Layout Inspector e conteggi delle ricomposizioni
← Torna a Jetpack Compose Academy