Member-only story
View Life Cycle SwiftUI
2 min readDec 25, 2024
.
1. onAppear
- Purpose: Called every time the view appears.
- UIKit Equivalent: Similar to
viewWillAppear
. - Use Case: Trigger events or API calls each time a view appears.
- not triggered by state changes.
- Example:
.onAppear {
print("View appeared")
fetchData()
}
- Behavior: Automatically triggers every time the view re-enters the screen.
2. onDisappear
- Purpose: Called every time the view disappears.
- UIKit Equivalent: Similar to
viewWillDisappear
. - Use Case: Cleanup tasks or saving states when the view disappears.
- Example:
.onDisappear {
print("View disappeared")
}
Extending onAppear
to Mimic viewDidLoad
- SwiftUI lacks a direct equivalent of
viewDidLoad
(one-time event). - Solution:
- Use a
@State
Boolean variable to differentiate between the first load and subsequent appearances. - Example:
@State private var isFirstLoad = false
.onAppear {
if !isFirstLoad {
print("View loaded for the first time")
isFirstLoad = true
fetchData()
} else {
print("View appeared again")
}
}