0Pricing
Swift Academy · レッスン

@Binding:双方向のデータフロー

@Bindingと$プレフィックスを使い、View階層の下位に可変状態を渡します。

「@Binding:双方向のデータフロー」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

ようこそ

`@Binding` は、親の状態と子ビューの間に双方向の接続を作成します。これにより、子ビューは親の値を所有せずに読み書きできます。

Binding の作成

```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) } } ```

$ 接頭辞

`@State` プロパティの `$name` は `Binding` を返します。これは親のストレージへの参照であり、値の双方向の読み書きを可能にします。

Binding 経由での書き込み

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

プレビュー用の定数 Binding

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

コレクション要素への Binding

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

@State と @Binding のまとめ

• `@State` — 値を*所有*し、ビュー内に保持します • `@Binding` — 別のビューの状態を*参照*し、所有しません • `@Binding` 経由の変更は所有者に反映されます

派生 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 以降では、`if let $binding` によるオプショナル Binding がサポートされています。

複数の Binding

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

確認問題

`@State` プロパティの `$` 接頭辞は何を返しますか?

まとめ

重要なポイント: • `@Binding var x: T` — 所有権を持たない読み書き可能な参照 • `$stateProperty` は `Binding` を作成します • 変更できないプレビュー用 Binding には `.constant(value)` を使用します • 子ビューが `@Binding` 経由で書き込むと、親の `@State` が更新されます • 変更可能な反復処理には `ForEach($collection) { $element in }` を使用します 次は `@ObservableObject` です。

よくある質問

「@Binding:双方向のデータフロー」レッスンは無料ですか?

はい。「@Binding:双方向のデータフロー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「@Binding:双方向のデータフロー」で何を学びますか?

@Bindingと$プレフィックスを使い、View階層の下位に可変状態を渡します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「@Binding:双方向のデータフロー」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. @Binding:双方向のデータフロー
  2. @ObservableObjectと@StateObject
  3. 共有状態のための@EnvironmentObject
  4. 単一の信頼できる情報源と単方向フロー
← Swift Academyに戻る