0Pricing
Swift Academy · Aula

@Binding: fluxo de dados bidirecional

Passe estado mutável pela hierarquia de views usando @Binding e o prefixo $.

@Binding: fluxo de dados bidirecional é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Boas-vindas

`@Binding` cria uma conexão bidirecional entre o estado do pai e uma visualização filha, permitindo que a filha leia e grave o valor do pai sem ser sua proprietária.

Criando uma ligação

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

O prefixo $

`$name` em uma propriedade `@State` retorna um `Binding` — uma referência ao armazenamento do pai que permite leituras e escritas bidirecionais.

Escrevendo por meio de uma ligação

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

Ligação constante para pré-visualizações

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

Ligação a um elemento de coleção

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

Resumo de @State versus @Binding

• `@State` — *é proprietário* do valor, que vive na visualização • `@Binding` — *faz referência* ao estado de outra visualização, sem ser seu proprietário • Alterações feitas por meio de `@Binding` são propagadas de volta para o proprietário

Ligação derivada

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

Binding<Optional>

```swift if let $item = $selectedItem { DetailView(item: $item) } ``` O Swift 5.7+ oferece suporte a ligações opcionais com `if let $binding`.

Várias ligações

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

Verificação rápida

O que o prefixo `$` em uma propriedade `@State` retorna?

Recapitulação

Principais conclusões: • `@Binding var x: T` — referência de leitura/escrita, sem propriedade do valor • `$stateProperty` cria o `Binding` • `.constant(value)` para ligações de pré-visualização não mutáveis • Escritas da filha por meio de `@Binding` atualizam o `@State` do pai • `ForEach($collection) { $element in }` para iteração mutável Próximo: @ObservableObject.

Perguntas Frequentes

A aula “@Binding: fluxo de dados bidirecional” é grátis?

Sim — o texto completo de “@Binding: fluxo de dados bidirecional” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “@Binding: fluxo de dados bidirecional”?

Passe estado mutável pela hierarquia de views usando @Binding e o prefixo $. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “@Binding: fluxo de dados bidirecional”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. @Binding: fluxo de dados bidirecional
  2. @ObservableObject e @StateObject
  3. @EnvironmentObject para estado compartilhado
  4. Fonte única da verdade e fluxo unidirecional
← Voltar para Swift Academy