0Pricing
Swift Academy · Урок

@State: локальное изменяемое состояние представлений

Используйте @State, чтобы обновлять интерфейс на основе локального состояния представления.

«@State: локальное изменяемое состояние представлений» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.

Добро пожаловать

`@State` — это самый простой инструмент управления состоянием в SwiftUI. Он хранит изменяемое значение внутри представления и запускает повторную отрисовку при каждом его изменении.

Основы @State

```swift struct Counter: View { @State private var count = 0 var body: some View { Button("Count: \(count)") { count += 1 } } } ```

Приватность по соглашению

Помечайте свойства `@State` как `private`: они являются деталями реализации представления, а не частью его интерфейса.

Хранение состояния

SwiftUI управляет резервным хранилищем для `@State` отдельно от структуры. Хотя структура представления создаётся заново при каждой отрисовке, значение состояния сохраняется.

@State со строками

```swift struct NameInput: View { @State private var name = "" var body: some View { TextField("Enter name", text: $name) Text("Hello, \(name)!") } } ```

@State с логическими значениями

```swift struct ToggleDemo: View { @State private var isOn = false var body: some View { Toggle("Enable", isOn: $isOn) if isOn { Text("Enabled!") } } } ```

Запуск повторной отрисовки

Любое изменение `@State` заставляет SwiftUI снова вызвать `body`. Движок отрисовки SwiftUI эффективно сравнивает результат и обновляет только изменившиеся части пользовательского интерфейса.

@State для сложных значений

```swift struct Item: Identifiable { let id = UUID(); var text: String } struct ListView: View { @State private var items: [Item] = [] ... } ```

Ограничения @State

• Только локальное состояние — его нельзя использовать совместно между представлениями без `@Binding` • Лучше всего подходит для примитивных типов и небольших структур • Для общего или сложного состояния используйте `@StateObject` / `@ObservableObject`

@State и @StateObject

• `@State` — тип-значение, принадлежащий представлению; используйте для примитивов • `@StateObject` — ссылочный тип, принадлежащий представлению; используйте для моделей `ObservableObject`

Быстрая проверка

Что запускает повторную отрисовку представления при использовании `@State`?

Итоги

Главное: • `@State` хранит локальное изменяемое состояние, принадлежащее представлению • Помечайте его как `private` — это деталь реализации • Изменения → автоматическая повторная отрисовка • SwiftUI сохраняет состояние между повторными вычислениями `body` • Используйте `@Binding`, чтобы делиться состоянием с дочерними представлениями Далее: модификаторы представлений.

Часто задаваемые вопросы

Урок «@State: локальное изменяемое состояние представлений» бесплатный?

Да — полный текст урока «@State: локальное изменяемое состояние представлений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.

Чему я научусь в уроке «@State: локальное изменяемое состояние представлений»?

Используйте @State, чтобы обновлять интерфейс на основе локального состояния представления. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «@State: локальное изменяемое состояние представлений»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Протокол View и свойство Body
  2. @State: локальное изменяемое состояние представлений
  3. Модификаторы представлений: цепочки и пользовательские модификаторы
  4. Предварительный просмотр и поставщик предварительного просмотра
← Назад к Swift Academy