← 아카이브로 돌아가기

Development · SwiftUI

SwiftUI @State로 값의 변화 관리하기

뷰가 소유한 값의 변화를 추적하고 화면을 다시 그리게 하는 @State의 역할과 사용 범위를 정리합니다.

Velog 원문 보기 ↗

Development 아카이브 표지

SwiftUI의 View는 값 타입인데 화면 안의 숫자나 선택 상태는 계속 바뀐다. @State는 이 모순처럼 보이는 부분에서 값의 저장 위치와 화면 갱신을 이어 준다.

Struct내의 @State

Struct는 값 타입이여서 Struct내의 값을 변경할 수 없지만, @State를 통해 값을 변경할 수 있다. 선언된 변수의 값을 관찰하고 값의 변화가 있을 때 해당 뷰를 업데이트 한다. 뷰의 body에서만 접근해야되기 때문에 private으로 선언하는 것을 권장한다.

struct StateStudy: View {
    
    // 값의 변화 추적
    @State private var count: Int = 0
    
    var body: some View {
        VStack(spacing: 24) {
            Text("Current Count is \(count)")
            Button("Click to Count") {
                count += 1
            }
        }
    }
}

← 아카이브로 돌아가기