SwiftUI Academy · Lektion

Varför underordnade vyer behöver @Binding

Förstå tvåvägsdataflödet mellan vyer.

Lektion 1 av 413 steg

Varför underordnade vyer behöver @Binding är en gratis lektion i SwiftUI Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SwiftUI Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.

Två vyer, en sanning

När en överordnad vy äger ett värde och en underordnad vy behöver ändra det måste de dela en enda källa till sanning. Annars glider de isär. 🔗

Problemet med kopior

Om du bara skickar ett värde till en underordnad vy får den en kopia. Om du redigerar kopian påverkas aldrig den överordnade vyns ursprungliga data.

Här kommer @Binding

En @Binding är en tvåvägskoppling. Den underordnade vyn läser och skriver direkt till den överordnade vyns värde, utan någon kopia däremellan.

En referens, inte en kopia

Tänk på en bindning som en fjärrkontroll. Den underordnade vyn äger inte datan, utan har bara en referens till platsen där den finns.

Vem äger vad

Den överordnade vyn äger tillståndet med @State. Den underordnade vyn lånar det via @Binding. Ägarskapet finns kvar på en tydlig plats.

Dataflöde i två riktningar

Med en bindning flödar ändringar åt båda hållen. Den överordnade vyn uppdaterar den underordnade, och den underordnade kan uppdatera den överordnade. Allt hålls synkroniserat.

En bindning i en underordnad vy

En underordnad vy deklarerar en bindning för värdet den behöver ändra, markerad med property wrappern @Binding.

struct ChildView: View {
    @Binding var isOn: Bool
    var body: some View {
        Toggle("Lights", isOn: $isOn)
    }
}

SwiftUI bygger på bindningar

Du har redan använt bindningar. Toggle, TextField och Slider tar alla emot en bindning så att de kan skriva tillbaka värdet du ändrar.

Varför det spelar roll

Med bindningar kan du dela upp en stor skärm i små, fokuserade underordnade vyer utan att förlora det delade tillståndet. Det håller din kod återanvändbar. ✨

Inget duplicerat tillstånd

Kopiera aldrig samma värde till både den överordnade och den underordnade vyn som separata @State. Då skapas två sanningar som i tysthet kan hamna i konflikt.

En källa, många vyer

Ett värde som säkert kan redigeras av många vyer: det är löftet med @Binding. I nästa lektioner visar vi hur du kopplar ihop det.

Snabb kontroll

Snabb kontroll av delat tillstånd.

Sammanfattning: Dela en sanning

Den överordnade vyn äger tillståndet, medan den underordnade lånar det med @Binding för säkra ändringar i två riktningar. En enda källa till sanning håller alla vyer synkroniserade. 🎉

Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Varför underordnade vyer behöver @Binding” gratis?

Ja – hela texten till ”Varför underordnade vyer behöver @Binding” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SwiftUI Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Varför underordnade vyer behöver @Binding”?

Förstå tvåvägsdataflödet mellan vyer. Ni övar på SwiftUI Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig SwiftUI Academy?

Du behöver inga förkunskaper. Utbildningen i SwiftUI Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Varför underordnade vyer behöver @Binding”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här SwiftUI Academy-lektionen?

Ja. Varje SwiftUI Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Varför underordnade vyer behöver @Binding
  2. Skicka ned en Binding
  3. Bygg en återanvändbar Toggle-rad
  4. @State jämfört med @Binding
← Tillbaka till SwiftUI Academy