SwiftUI Academy · Lektion

Undgå unødvendige gentegninger

Begræns state for at minimere genberegninger af body.

Lektion 2 af 413 trin

Undgå unødvendige gentegninger er en gratis SwiftUI Academy-lektion på CoddyKit. Dette er lektion 2 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 SwiftUI Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SwiftUI Academy-kurset indeholder 4 lektioner i alt.

Prisen ved for mange opdateringer

Hvis en lille ændring tvinger en stor visning til at blive opbygget igen, hakker rulningen. Løsningen er at holde hver gentegning så lille som muligt.

Tilstand hører hjemme dér, hvor den ændres

Placér @State i den mindste visning, der ejer den. Så evalueres kun den lille visning igen, når værdien ændres, ikke dens store forælder.

struct Counter: View {
    @State private var count = 0
}

Udtræk underordnede visninger

Opdel en stor body i mindre undervisninger. Så kan SwiftUI sammenligne dem og springe de dele over, hvis input ikke er ændret.

var body: some View {
    HeaderView()
    FeedView()
}

Send kun det, du har brug for

Giv en underv visning kun de værdier, den læser. Jo færre afhængigheder en visning har, desto sjældnere skal den genberegnes.

RowView(title: item.title)

Hold øje med læsninger af observerbare data

Med @Observable-modeller opdateres en visning kun for de nøjagtige egenskaber, den bruger. Læs kun de felter, du viser.

Undgå brede tilstandsobjekter

Hvis én stor model læses overalt, forplanter hver ændring sig udad. Opdel den, så hver visning kun afhænger af et smalt udsnit af dataene.

Pas på closures, der indfanger self

En closure, der læser mange egenskaber, udvider en visnings afhængigheder. Indfang kun den specifikke værdi, handlingen faktisk har brug for.

Flyt tungt arbejde ud af body

Udfør aldrig beregningstungt arbejde i body. Den kører ofte, så gem resultaterne i en tilstand eller model, og læs den færdige værdi.

Brug let til konstanter

Markér uændrede input som let. Konstante egenskaber udløser aldrig opdateringer, hvilket tydeligt viser, at de ikke kan medføre en gentegning.

struct Badge: View {
    let label: String
}

Equatable-visninger

For beregningstunge undervisninger kan du gøre dem Equatable, så SwiftUI kan sammenligne input og springe en ny evaluering over, når de stemmer overens.

ExpensiveView(data: data)
    .equatable()

Optimér det, du måler

Gæt ikke. Begræns tilstanden, udtræk visninger, og mål derefter for at bekræfte, at du faktisk har gjort de belastende gentegninger mindre.

Hurtigt tjek

Hvor skal du placere tilstanden for at begrænse gentegninger?

Opsamling: Undgå gentegninger

Du har lært at begrænse tilstanden stramt, udtrække undervisninger, sende minimale datamængder og holde body billig. Færre afhængigheder betyder færre gentegninger. ⚡

Gratis at komme i gang

Lær Swift 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 “Undgå unødvendige gentegninger” gratis?

Ja — hele teksten til “Undgå unødvendige gentegninger” 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 SwiftUI Academy-kurset, skal du opgradere til CoddyKit PRO. SwiftUI Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Undgå unødvendige gentegninger”?

Begræns state for at minimere genberegninger af body. Du øver dig i SwiftUI 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å SwiftUI Academy?

Der kræves ingen tidligere erfaring. SwiftUI 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 2 af 4.

Hvor lang tid tager lektionen “Undgå unødvendige gentegninger”?

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 SwiftUI Academy-lektion?

Ja. Alle SwiftUI 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. Sådan genberegner SwiftUI views
  2. Undgå unødvendige gentegninger
  3. Lazy-indlæsning af tungt indhold
  4. Profilering med Instruments
← Tilbage til SwiftUI Academy