LaunchedEffect til coroutines
Start suspend-arbejde, der er knyttet til composition.
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. 🎯
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
- LaunchedEffect til coroutines
- rememberCoroutineScope til hændelser
- DisposableEffect og oprydning
- derivedStateOf og snapshotFlow