구조체인데 View의 환경과 관련된 프로퍼티들을 가지고 있다.
A property wrapper that reads a value from a view’s environment.
특정 뷰에서 EnvironmentValues의 저장된 값들을 읽어들여(읽기전용!!) 뷰 구성하는데 사용한다.
그렇다면 어떻게 오똫게 저장할까?
1. 환경키 만들기~ EnvironmentKey setting
Private struct thisiskey : EnvironmentKey{
static let key = "value입니다"}
2.EnvironmentValues 정의
이 타입에 우리가 사용할 이름의 연산프로퍼티 추가> gettser, setter정의까지
우선 ObservableObject프로토콜을 따르는 객체가 필요.
이 객체의 상태가 변하면 뷰를 다시 그려준다. 뷰 자체를 refresh!
위와 마찬가지로 ObservableObject프로토콜을 따라야 하고
A state object behaves like an observed object, except that SwiftUI knows to create and manage a single object instance for a given view instance, regardless of how many times it recreates the view.
stateObject는 하나의 객체!! view가 초기화되든 상관없이 별개의 객체로 관리.