@State
- 값의 변경을 감지하고 뷰를 자동으로 Update하는데 사용된다
struct ContentView: View
{
@State private var count = 0
var body: some view
{
VStack
{
Text("Count: \(count)")
Button(action: { count += 1 })
}
}
}
@Binding
데이터의 양방향 바인딩을 구현하는데 사용, 뷰 간에 데이터를 공유하고 업데이트 하는데 사용
[특징]
1. 값의 참조: 값을 저장하지 않고 값의 참조를 저장, 부모 뷰와 자식 뷰가 같은 Data값을 참조
2. 양방향 데이터 흐름: 자식 뷰에서 값을 변경하면 해당 변경 사항이 부모 뷰로 전파되어 다른 연결된 View에도 영향을 줌
3. 데이터의 Sync: Data의 Sync를 자동으로 관리
4. 데이터 공유: Data를 여러 뷰 간에 공유할 수 있도록 해줌
struct ParentView: View
{
@State private var toggleState = false
var body: some View
{
VStack
{
ChildView(isToggled: $toggleState)
}
}
}
struct ChildView: View
{
@Binding var isToggled: Bool
var body: some View
{
Toggle(isOn: $isToggled)
}
}
ChildView의 isToggled가 바뀌면 ParentView의 toggleState가 바뀜, @Binding이 값의 참조를 저장하기 때문
'iOS > SwiftUI' 카테고리의 다른 글
[SwiftUI] @StateObject vs @ObservedObject (2) | 2024.07.01 |
---|