0Pricing
Swift Academy · Lección

@Binding: flujo de datos bidireccional

Transmita estado mutable por la jerarquía de vistas mediante @Binding y el prefijo $.

@Binding: flujo de datos bidireccional es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Introducción

`@Binding` crea una conexión bidireccional entre el estado de un elemento padre y una vista secundaria, lo que permite que esta lea y escriba el valor del padre sin ser su propietaria.

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

El prefijo $

`$name` en una propiedad `@State` devuelve un `Binding`: una referencia al almacenamiento del elemento padre que permite leer y escribir en ambas direcciones.

Escribir mediante un Binding

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

Binding constante para las vistas previas

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

Binding a un elemento de una colección

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

Resumen de @State frente a @Binding

• `@State` — *es propietario* del valor, que vive en la vista • `@Binding` — *hace referencia* al estado de otra vista, pero no es su propietario • Los cambios realizados mediante `@Binding` se propagan al propietario

Binding derivado

```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+ admite el binding opcional con `if let $binding`.

Varios bindings

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

Comprobación rápida

¿Qué devuelve el prefijo `$` de una propiedad `@State`?

Resumen

Puntos clave: • `@Binding var x: T` — referencia de lectura y escritura que no es propietaria del valor • `$stateProperty` crea el `Binding` • `.constant(value)` para bindings no mutables en las vistas previas • Las escrituras de la vista secundaria mediante `@Binding` actualizan el `@State` del elemento padre • `ForEach($collection) { $element in }` para iteraciones mutables Siguiente: @ObservableObject.

Preguntas frecuentes

¿La lección «@Binding: flujo de datos bidireccional» es gratis?

Sí — el texto completo de «@Binding: flujo de datos bidireccional» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «@Binding: flujo de datos bidireccional»?

Transmita estado mutable por la jerarquía de vistas mediante @Binding y el prefijo $. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «@Binding: flujo de datos bidireccional»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. @Binding: flujo de datos bidireccional
  2. @ObservableObject y @StateObject
  3. @EnvironmentObject para el estado compartido
  4. Fuente única de la verdad y flujo unidireccional
← Volver a Swift Academy