Зачем представлениям нужно состояние
Разберитесь, почему представления SwiftUI неизменяемы.
«Зачем представлениям нужно состояние» — бесплатный урок SwiftUI Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SwiftUI Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SwiftUI Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Views Describe, They Don't Hold
A SwiftUI view is a lightweight description of your UI for one moment. It is recreated constantly, so it can't simply store changing values like a normal object. 📐
Structs Are Immutable
Your views are structs, and SwiftUI treats their stored properties as read-only inside body. You cannot just reassign a property and expect the screen to react.
struct CounterView: View {
var count = 0
var body: some View {
Text("Count: \(count)")
}
}Why Reassigning Fails
Try setting a plain property from a button and the compiler stops you: structs can't mutate themselves inside body. The UI has no idea anything changed anyway.
The UI Is a Function of Data
In SwiftUI, the screen is a pure function of your data. Same data in, same UI out. To change the screen, you change the data, not the view directly.
Enter State
SwiftUI gives you state: a place to store changing values that lives outside the throwaway view struct. When state changes, SwiftUI rebuilds the affected views for you. ✨
State Survives Redraws
Even though the view struct is recreated again and again, your state value persists between redraws. SwiftUI stores it safely behind the scenes for that view.
The Source of Truth
State becomes the single source of truth for a piece of view-local data. The view always reflects it, so there is never a stale, out-of-sync screen.
A Tiny Example
Here a stored value drives the text. Once it is marked as state, changing it will automatically refresh the Text on screen.
struct GreetingView: View {
@State private var name = "Sam"
var body: some View {
Text("Hi, \(name)")
}
}Reactive, Not Imperative
You never tell a label to update itself. You change the data and SwiftUI reacts. This declarative style means less wiring and fewer bugs.
When You Need State
Use state for values a single view owns and changes over time: a counter, a toggle, typed text. Static labels and fixed config don't need it.
Keep State Small
State is meant for simple, view-local data. Keep each piece focused so SwiftUI can update efficiently and your views stay easy to reason about.
Quick Check
Why can't a SwiftUI view just store a changing value in a plain property?
Recap
SwiftUI views are immutable structs and the UI is a function of data. State lets a view own changing values that persist across redraws and drive automatic updates. 🎯
Часто задаваемые вопросы
Урок «Зачем представлениям нужно состояние» бесплатный?
Да — полный текст урока «Зачем представлениям нужно состояние» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SwiftUI Academy, подпишись на CoddyKit PRO. Курс SwiftUI Academy содержит 4 уроков всего.
Чему я научусь в уроке «Зачем представлениям нужно состояние»?
Разберитесь, почему представления SwiftUI неизменяемы. Ты практикуешь SwiftUI Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать SwiftUI Academy?
Предыдущий опыт не требуется. SwiftUI Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Зачем представлениям нужно состояние»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке SwiftUI Academy?
Да. Каждый урок SwiftUI Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем представлениям нужно состояние
- Объявление свойств @State
- Создание счетчика нажатий
- Переключение видимости с помощью состояния