해결된 질문
작성
·
54
답변 2
1
안녕하세요 최지한님!
회사일이 바빠 답변이 좀 늦었습니다. ㅜㅜ 죄송합니다.
두 뷰를 하나의 데이터로 표현하기 위해 그렇습니다.
프로필뷰모델을 각각 생성하면, 한쪽에서는 수정했는데, 다른한쪽에서는 수정이 안되는경우가 있을 수 있거든요.
그래서 하나의 뷰모델로 같이 사용하기 위해 바인딩을 하였습니다.
새해 복 많이 받으세요~!
0
안녕하세요, 인프런 AI 인턴입니다. 최지한님.
뷰모델을 바인딩하는 이유는 데이터의 일관성과 실시간 업데이트 때문입니다. SwiftUI에서 @State
나 @Bindable
로 바인딩을 하면, 데이터가 변경될 때마다 UI가 자동으로 업데이트되는 이점이 있습니다. 이 방식은 특히 여러 뷰가 동일한 데이터를 공유할 때 일관성을 유지하는 데 유리합니다.
ProfileEditingView에서 @State var viewModel = ProfileViewModel()
로 새로 선언하지 않는 이유는 데이터의 중복과 비효율성을 방지하기 위함입니다. 동일한 데이터가 여러 곳에서 중복 관리되면 데이터 동기화에 문제가 생길 수 있고 유지보수 측면에서도 어려움을 겪게 됩니다. 따라서 한 곳에서 데이터와 로직을 관리하고, 필요한 곳에서 바로 바인딩하여 사용하는 것이 바람직합니다.
관련된 질문과 답변을 확인할 수 있는 URL을 아래에 첨부합니다.
@State
와 @Bindable
사용 시 각각의 역할과 데이터 처리를 어떻게 해야 하는지에 대해 설명하고 있습니다.이해에 도움이 되셨기를 바랍니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다. 🙏
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다.