Quản lý trạng thái SwiftUI
@State, @Binding, @ObservedObject, @EnvironmentObject, @StateObject, luồng dữ liệu
1Nên dùng property wrapper nào để quản lý trạng thái cục bộ của một view SwiftUI?
Nên dùng property wrapper nào để quản lý trạng thái cục bộ của một view SwiftUI?
Câu trả lời
@State tạo ra một nguồn chân lý (source of truth) cho dữ liệu có thể thay đổi bên trong một view. SwiftUI tự động quản lý vòng đời và vẽ lại view khi giá trị thay đổi. Đây là cơ chế cơ bản cho việc thay đổi trạng thái cục bộ trong một view đơn lẻ.
2Property wrapper @Binding trong SwiftUI dùng để làm gì?
Property wrapper @Binding trong SwiftUI dùng để làm gì?
Câu trả lời
@Binding tạo một tham chiếu hai chiều tới một source of truth đã tồn tại. Nó cho phép một view con thay đổi dữ liệu của view cha mà không sở hữu chính source đó. Điều này thiết yếu cho giao tiếp cha-con trong khi vẫn duy trì một nguồn thẩm quyền duy nhất.
3Vai trò của @Published trong quản lý trạng thái SwiftUI là gì?
Vai trò của @Published trong quản lý trạng thái SwiftUI là gì?
Câu trả lời
@Published đánh dấu các thuộc tính của một lớp ObservableObject là có thể quan sát được. Khi một thuộc tính @Published thay đổi, lớp đó thông báo cho tất cả observer, kích hoạt việc vẽ lại view. Nó là cầu nối giữa các lớp và hệ thống phản ứng (reactive) của SwiftUI.
Làm thế nào để truy cập thuộc tính @State của view cha từ view con?
Khi nào nên dùng @AppStorage thay vì @State?
+19 câu hỏi phỏng vấn
Các chủ đề phỏng vấn iOS khác
Kiến thức cơ bản về Swift
Kiến thức cơ bản về ngôn ngữ Swift
Kiến thức cơ bản về UIKit
Vòng đời UIViewController
UserDefaults & Keychain
Vòng đời của ứng dụng
Auto Layout & Constraints
UITableView & UICollectionView
Kiến thức cơ bản về SwiftUI
Điều hướng SwiftUI
Networking & URLSession
Codable & Phân tích JSON
Core Data
Lập trình hướng giao thức
Kiến trúc MVVM
Thông báo Push
Unit Testing & XCTest
Kiểm thử giao diện người dùng
Xcode & Hệ thống Build
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
Tối ưu hóa hiệu suất
Bảo mật và mã hóa
SwiftUI Advanced
Kiến trúc ứng dụng iOS
Nắm vững iOS cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí