SwiftUI Academy · บทเรียน

เหตุใด View จึงต้องมีสถานะ

ทำความเข้าใจว่าเหตุใด View ของ SwiftUI จึงเปลี่ยนแปลงไม่ได้

บทเรียน 1 จาก 413 ขั้นตอน

เหตุใด View จึงต้องมีสถานะ เป็นบทเรียน SwiftUI Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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. 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Swift ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “เหตุใด View จึงต้องมีสถานะ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เหตุใด View จึงต้องมีสถานะ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SwiftUI Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SwiftUI Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เหตุใด View จึงต้องมีสถานะ”

ทำความเข้าใจว่าเหตุใด View ของ SwiftUI จึงเปลี่ยนแปลงไม่ได้ คุณปฏิบัติ SwiftUI Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SwiftUI Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SwiftUI Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เหตุใด View จึงต้องมีสถานะ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SwiftUI Academy นี้ได้ไหม

ได้ บทเรียน SwiftUI Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุใด View จึงต้องมีสถานะ
  2. การประกาศพร็อพเพอร์ตี @State
  3. การสร้างตัวนับการแตะ
  4. การสลับการมองเห็นด้วยสถานะ
← กลับไปที่ SwiftUI Academy