Добавить объявление

Что такое @State в SwiftUI?

@State - это property wrapper (обертка свойства), которая позволяет хранить и отслеживать изменяемые данные внутри View. Когда значение @State меняется, SwiftUI автоматически перерисовывает представление, чтобы отразить обновленные данные.

Особенности:


  • Для простых значений: используется для примитивов (Int, String, Bool) и структур (Struct).

  • Локальное хранение: данные живут только внутри этой View и не предназначены для передачи в другие экраны.

  • Автоматическое обновление: при изменении значения SwiftUI пересоздает View (но сохраняет состояние).

Пример:


struct MyView: View {
@State private var value = 0 // Значение, которое может меняться

var body: some View {
Button("Нажато: \(value)") {
value += 1 // Изменение @State перерисует кнопку
}
}
}

Когда использовать:


  • Для внутреннего состояния View (чекбоксы, текст поля, флаги).

  • Если данные не нужно передавать в другие View (иначе используйте @Binding или @ObservedObject).

Важно:


  • Всегда помечайте @State как private.

  • Не используйте для сложных объектов (для этого есть @StateObject).


@State - это основа реактивности в SwiftUI!
06.06.2025 15 369