Jetpack Compose Academy · Lektion

LaunchedEffect til coroutines

Start suspend-arbejde, der er knyttet til composition.

Lektion 1 af 413 trin

LaunchedEffect til coroutines er en gratis Jetpack Compose Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Jetpack Compose Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Effekter lever uden for kompositionen

Composables bør være rene og kunne køre mange gange. Når du skal udføre egentligt arbejde som et netværkskald, skal du i stedet bruge en håndtering af en sideeffekt.

Mød LaunchedEffect

En LaunchedEffect kører suspend-kode i en coroutine, der er knyttet til dens placering i kompositionen. Det er perfekt til arbejde, der skal udføres én gang ved opstart. 🚀

Den starter, når den kommer ind

Når en LaunchedEffect kommer ind i kompositionen første gang, starter den sin blok. Når den forlader kompositionen, annulleres coroutinen automatisk.

LaunchedEffect(Unit) {
    loadProfile()
}

Nøglen styrer genstarter

Det første argument er en key. Hvis nøglen ændres mellem rekompositioner, annulleres den gamle coroutine, og en ny starter.

LaunchedEffect(userId) {
    user = fetchUser(userId)
}

Brug Unit til at køre én gang

Hvis du sender Unit (eller true) som nøgle, genstarter effekten aldrig. Den kører én gang, når Composable-elementet vises.

LaunchedEffect(Unit) {
    analytics.logScreenView()
}

Suspend-kald er velkomne

Inde i blokken kan du frit kalde suspend-funktioner som delay eller en Retrofit-anmodning. Coroutine-området stilles til rådighed for dig.

LaunchedEffect(Unit) {
    delay(2000)
    showSplash = false
}

Start aldrig i kroppen

Det er en fejl at kalde en coroutine direkte i Composable-elementets krop. Kroppen kører igen ved hver rekomposition, så arbejdet ville blive startet igen og igen.

Annullering sker automatisk

Når brugeren navigerer væk, og Composable-elementet forlader skærmen, annullerer Compose coroutinen. Ingen manuel oprydning og ingen lækager.

Kombinér den med tilstand

Effekter skriver normalt deres resultat til tilstand, så brugergrænsefladen tegnes igen. Gem de indlæste data, så viser rekompositionen dem.

var data by remember { mutableStateOf<List<Item>>(emptyList()) }
LaunchedEffect(Unit) { data = repo.load() }

Flere nøgler til kombinerede udløsere

Du kan sende flere nøgler. Effekten genstarter, hver gang en hvilken som helst af dem ændres, hvilket er praktisk, når data skal hentes igen efter ændringer af filtre.

LaunchedEffect(query, sort) {
    results = search(query, sort)
}

Et typisk indlæsningsmønster

Sammen kan det beskrives som en opskrift: sæt loading til true, vent på resultatet, og gem det derefter. Compose håndterer livscyklussen omkring din coroutine.

LaunchedEffect(id) {
    loading = true
    item = repo.get(id)
    loading = false
}

Hurtigt tjek

Tænk over, hvordan genstarter styres.

Opsummering: LaunchedEffect

Godt arbejde! LaunchedEffect kører suspend-kode, der er knyttet til kompositionen, genstarter, når dens nøgle ændres, og annullerer automatisk sig selv, når Composable-elementet forlader kompositionen. 🎯

Gratis at komme i gang

Lær Kotlin med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “LaunchedEffect til coroutines” gratis?

Ja — hele teksten til “LaunchedEffect til coroutines” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Jetpack Compose Academy-kurset, skal du opgradere til CoddyKit PRO. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “LaunchedEffect til coroutines”?

Start suspend-arbejde, der er knyttet til composition. Du øver dig i Jetpack Compose Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Jetpack Compose Academy?

Der kræves ingen tidligere erfaring. Jetpack Compose Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “LaunchedEffect til coroutines”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Jetpack Compose Academy-lektion?

Ja. Alle Jetpack Compose Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. LaunchedEffect til coroutines
  2. rememberCoroutineScope til hændelser
  3. DisposableEffect og oprydning
  4. derivedStateOf og snapshotFlow
← Tilbage til Jetpack Compose Academy