onAppear(perform:)
func onAppear(perform action: (() -> Void)? = nil) -> some View
view
가 나타나면 action을 트리거하는 view
를 반환
onDisappear(perform:)
func onDisappear(perform action: (() -> Void)? = nil) -> some View
view
가 사라지면 action을 트리거하는 view
를 반환
onChange(of:perform:)
func onChange<V>(of value: V, perform action: @escaping (V) -> Void)
-> some View where V : Equatable
value
가 변하면 action을 실행하는 뷰를 반환
첫 화면은 To Destination 버튼을 눌렀을 때 DestinationView
를 sheet로 띄우도록 구현
두 번째 화면은 Increase Count버튼을 누르면 숫자가 올라가고, Dismiss버튼을 누르면 해당 뷰가 닫히도록 구현
그 후 두 번째 뷰의 VStack
에 각각 onAppear(perform:)
, onDisappear(perform:)
, onChange(of:perform:)
을 추가
UIViewController
에서 viewDid...
에 해당하는 듯 하다.viewDidDisappear()
과 유사하다는 것을 추측할 수 있다.func task(priority: TaskPriority = .userInitiated, _ action: @escaping () async -> Void)
-> some View
view
가 나타나면 비동기 작업을 실행하는 메서드
action
클로저에 async
가 붙어있으므로 클로저 내부에 await
키워드 등을 사용해야 함priority
를 설정 가능