0Pricing
Swift Academy · บทเรียน

@State: สถานะที่เปลี่ยนแปลงได้ภายใน View

ใช้ @State เพื่อขับเคลื่อนการอัปเดต UI จากสถานะส่วนตัวของ View

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

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

คุณจะเรียนรู้อะไรในบทเรียน “@State: สถานะที่เปลี่ยนแปลงได้ภายใน View”

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

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

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

บทเรียน “@State: สถานะที่เปลี่ยนแปลงได้ภายใน View” ใช้เวลานานแค่ไหน

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

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

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

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

  1. โพรโทคอล View และคุณสมบัติ Body
  2. @State: สถานะที่เปลี่ยนแปลงได้ภายใน View
  3. ตัวปรับแต่ง View: การเชื่อมต่อและตัวปรับแต่งแบบกำหนดเอง
  4. พรีวิวและ Preview Provider
← กลับไปที่ Swift Academy