การจัดการ State ใน SwiftUI
@State, @Binding, @ObservedObject, @EnvironmentObject, @StateObject, การไหลของข้อมูล
1ควรใช้ property wrapper ใดในการจัดการ state ภายในของ view SwiftUI?
ควรใช้ property wrapper ใดในการจัดการ state ภายในของ view SwiftUI?
คำตอบ
@State สร้าง source of truth สำหรับข้อมูลที่เปลี่ยนแปลงได้ภายใน view โดย SwiftUI จะจัดการวงจรชีวิตให้อัตโนมัติและวาด view ใหม่เมื่อค่าเปลี่ยน นี่คือกลไกพื้นฐานสำหรับการเปลี่ยนแปลง state ภายใน view เดียว
2property wrapper @Binding ใน SwiftUI มีจุดประสงค์อะไร?
property wrapper @Binding ใน SwiftUI มีจุดประสงค์อะไร?
คำตอบ
@Binding สร้างการอ้างอิงแบบสองทางไปยัง source of truth ที่มีอยู่แล้ว ช่วยให้ child view สามารถแก้ไขข้อมูลของ parent ได้โดยไม่ต้องเป็นเจ้าของ source เอง สิ่งนี้จำเป็นต่อการสื่อสารแบบ parent-child พร้อมรักษาแหล่งอ้างอิงเพียงแหล่งเดียว
3@Published มีบทบาทอย่างไรในการจัดการ state ของ SwiftUI?
@Published มีบทบาทอย่างไรในการจัดการ state ของ SwiftUI?
คำตอบ
@Published ทำเครื่องหมายให้พรอเพอร์ตีของคลาส ObservableObject สามารถถูกสังเกตได้ เมื่อพรอเพอร์ตี @Published เปลี่ยน คลาสจะแจ้งเตือน observer ทั้งหมด ทำให้เกิดการวาด view ใหม่ ถือเป็นสะพานเชื่อมระหว่างคลาสกับระบบ reactive ของ SwiftUI
จะเข้าถึงพรอเพอร์ตี @State ของ parent จาก child view ได้อย่างไร?
ควรใช้ @AppStorage แทน @State เมื่อใด?
+19 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ iOS อื่นๆ
พื้นฐาน Swift
พื้นฐานภาษา Swift
พื้นฐาน UIKit
วงจรชีวิตของ UIViewController
UserDefaults & Keychain
วงจรชีวิตของแอปพลิเคชัน
Auto Layout & Constraints
UITableView & UICollectionView
พื้นฐาน SwiftUI
การนำทาง SwiftUI
Networking & URLSession
Codable และการแยกวิเคราะห์ JSON
Core Data
การเขียนโปรแกรมเชิงโปรโตคอล
สถาปัตยกรรม MVVM
การแจ้งเตือนแบบ Push
Unit Testing และ XCTest
การทดสอบ UI
Xcode และระบบ Build
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
การเพิ่มประสิทธิภาพ
ความปลอดภัยและการเข้ารหัส
SwiftUI Advanced
สถาปัตยกรรมแอปพลิเคชัน iOS
เชี่ยวชาญ iOS สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี