← 질문 목록
#101깊이 0
상태 소유자를 잘못 두면 어떤 버그가 생기는가?
뷰 재생성 때 상태가 초기화되거나 모델이 중복 생성된다. 소유권이 여러 곳에 생기면 화면마다 값이 어긋나고 불필요한 갱신도 늘어난다.
- 상위 뷰상태의 단일 소유자다
- 하위 뷰Binding으로 변경 통로를 받는다
- 렌더링읽은 상태가 바뀌면 다시 계산된다
작은 값은 가장 가까운 뷰가 State로 소유한다. 하위 뷰가 같은 값을 편집해야 하면 복사하지 않고 Binding을 전달한다.
ObservableObject 모델을 뷰가 만들고 유지하면 StateObject를 쓴다. 외부에서 받은 모델은 ObservedObject로 관찰해 소유와 관찰을 분리한다.
넓게 공유하는 의존성은 Environment로 주입할 수 있다. 편리하더라도 범위를 넓히면 데이터 흐름과 테스트 의존성이 숨는다.