Rekompozycja: co wywołuje ponowne rysowanie
Dowiedz się, kiedy Compose ponownie wykonuje kod
Rekompozycja: co wywołuje ponowne rysowanie to bezpłatna lekcja Jetpack Compose Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.
Czym jest rekompozycja
Rekompozycja to ponowne uruchamianie przez Compose funkcji Composable w celu zaktualizowania ekranu po zmianie odczytywanego przez nie stanu.
Wyzwalana przez odczyty stanu
Przerysowanie jest wyzwalane tylko wtedy, gdy rzeczywiście zmieni się fragment stanu odczytywany przez element Composable. Brak zmiany stanu oznacza brak rekompozycji.
Ponownie uruchamiane są tylko elementy odczytujące stan
Compose działa inteligentnie: ponownie uruchamia tylko elementy Composable, które odczytują zmieniony stan, a nie cały ekran. Dzięki temu aktualizacje są wydajne.
Rekompozycja może zostać pominięta
Jeśli dane wejściowe elementu Composable się nie zmieniły, Compose może całkowicie pominąć jego ponowne uruchamianie. Niezmieniona praca jest po prostu ponownie wykorzystywana.
Może przebiegać w dowolnej kolejności
Compose może wykonywać rekompozycję elementów Composable w dowolnej kolejności, a nawet równolegle. Nigdy nie zakładaj, że jeden element uruchomi się przed drugim.
Może odbywać się często
Rekompozycja może zachodzić często, nawet przy każdej klatce animacji. Kod Composable powinien być szybki i lekki.
Zachowuj czystość elementów Composable
Traktuj elementy Composable jako wolne od efektów ubocznych. Unikaj zapisywania plików i bezpośredniego uruchamiania pracy w ich treści, ponieważ mogą być wykonywane wielokrotnie.
@Composable
fun Greeting(name: String) {
Text("Hi " + name)
}Obserwuj rekompozycję licznika
Za każdym razem, gdy zmienia się count, element Text, który go odczytuje, wykonuje rekompozycję i wyświetla nową liczbę, a niezmienione elementy sąsiednie pozostają bez zmian.
var count by remember { mutableStateOf(0) }
Text("Value: " + count)Nie wykonuj ciężkich obliczeń bezpośrednio
Wykonywanie kosztownego obliczenia w treści funkcji powtarza je przy każdej rekompozycji. Przenieś je poza nią albo zapamiętaj wynik.
remember buforuje obliczenia
Opakuj kosztowną wartość w remember, aby Compose obliczył ją raz i ponownie wykorzystywał między rekompozycjami, zamiast wykonywać tę pracę od nowa.
val sorted = remember(items) { items.sorted() }Model mentalny
Wyobraź sobie interfejs jako funkcję stanu. Zmień stan, a Compose ponownie obliczy dotknięte nim fragmenty i odpowiednio zaktualizuje ekran.
Szybkie sprawdzenie
Co właściwie wyzwala rekompozycję?
Podsumowanie
Wiesz już, że rekompozycja ponownie uruchamia tylko elementy odczytujące zmieniony stan, może zachodzić często i w dowolnej kolejności, dlatego elementy Composable powinny być szybkie i czyste. 🎯
Ucz się Kotlin dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Rekompozycja: co wywołuje ponowne rysowanie” jest bezpłatna?
Tak — pełny tekst „Rekompozycja: co wywołuje ponowne rysowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Rekompozycja: co wywołuje ponowne rysowanie”?
Dowiedz się, kiedy Compose ponownie wykonuje kod Ćwiczysz Jetpack Compose Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Jetpack Compose Academy?
Nie wymagamy żadnego doświadczenia. Jetpack Compose Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Rekompozycja: co wywołuje ponowne rysowanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Jetpack Compose Academy?
Tak. Każda lekcja Jetpack Compose Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- remember i mutableStateOf
- Rekompozycja: co wywołuje ponowne rysowanie
- Tworzenie licznika dotknięć
- rememberSaveable podczas obracania ekranu