Swift Academy · Oppitunti

@Binding: kaksisuuntainen tietovirta

Muuttuvan tilan välittäminen näkymähierarkiassa alaspäin @Binding-ominaisuudella ja $-etuliitteellä.

Oppitunti 1/412 vaihetta

@Binding: kaksisuuntainen tietovirta on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Tervetuloa

`@Binding` luo kaksisuuntaisen yhteyden ylätason tilan ja lapsinäkymän välille. Näin lapsinäkymä voi lukea ylätason arvon ja kirjoittaa siihen omistamatta arvoa itse.

Bindingin luominen

```swift struct Parent: View { @State private var name = "" var body: some View { ChildView(name: $name) // $ creates Binding } } struct ChildView: View { @Binding var name: String var body: some View { TextField("Name", text: $name) } } ```

$-etuliite

`@State`-ominaisuuden `$name` palauttaa `Binding`-sidoksen — viittauksen ylätason tallennustilaan, jonka kautta arvoa voidaan lukea ja kirjoittaa molempiin suuntiin.

Kirjoittaminen Bindingin kautta

```swift struct Toggle: View { @Binding var isOn: Bool var body: some View { Button(isOn ? "On" : "Off") { isOn.toggle() } } } ```

Vakiobinding esikatseluja varten

```swift #Preview { ChildView(isOn: .constant(true)) // non-mutable binding for preview } ```

Binding kokoelman alkioon

```swift ForEach($items) { $item in // $items is Binding<[Item]> TextField("Name", text: $item.name) } ```

@State- ja @Binding-ominaisuuksien yhteenveto

• `@State` — *omistaa* arvon, joka säilyy näkymässä • `@Binding` — *viittaa* toisen näkymän tilaan eikä omista sitä • `@Binding`-sidoksen kautta tehdyt muutokset välittyvät takaisin omistajalle

Johdettu Binding

```swift let isLarge: Binding = $fontSize.map( get: { $0 > 18 }, set: { $0 ? 24 : 14 } ) ```

Binding<Optional>

```swift if let $item = $selectedItem { DetailView(item: $item) } ``` Swift 5.7 ja uudemmat versiot tukevat valinnaista bindingia muodossa `if let $binding`.

Useita Binding-sidoksia

```swift struct Form: View { @State private var name = "" @State private var age = 0 var body: some View { FormFields(name: $name, age: $age) } } ```

Pikatarkistus

Mitä `@State`-ominaisuuden `$`-etuliite palauttaa?

Kertaus

Tärkeimmät asiat: • `@Binding var x: T` — luku- ja kirjoitusoikeuden tarjoava viittaus, joka ei omista arvoa • `$stateProperty` luo `Binding`-sidoksen • `.constant(value)` muuttumattomiin esikatselun binding-sidoksiin • Lapsinäkymän `@Binding`-sidoksen kautta tekemät muutokset päivittävät ylätason `@State`-tilan • `ForEach($collection) { $element in }` muokattavaan iterointiin Seuraavaksi: @ObservableObject.
Aloita maksutta

Opi Swift tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
122
Oppitunnit
409

Usein kysytyt kysymykset

Onko oppitunti ”@Binding: kaksisuuntainen tietovirta” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “@Binding: kaksisuuntainen tietovirta”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”@Binding: kaksisuuntainen tietovirta”?

Muuttuvan tilan välittäminen näkymähierarkiassa alaspäin @Binding-ominaisuudella ja $-etuliitteellä. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”@Binding: kaksisuuntainen tietovirta”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?

Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. @Binding: kaksisuuntainen tietovirta
  2. @ObservableObject ja @StateObject
  3. @EnvironmentObject jaettu tila
  4. Yksi totuuden lähde ja yksisuuntainen virtaus
← Takaisin: Swift Academy