
學習Flutter的過程中,都一定會遇到StatelessWidget與StatefulWidget,但常常會搞不清楚它們的Lifecycle,因此特別說明一下。
本篇主要介紹Flutter的 Lifecycle
StatelessWidget
不需要與 Widget 互動,則使用 StatelessWidget。
Lifecycle:
1. createElement
2. build
StatefulWidget
需要與 Widget 互動,則使用 StatefulWidget。
Lifecycle:
- createState
- 建立StatefulWidget時,會被呼叫。
2. initState
- 只會被呼叫一次。
3. didChangeDependencies
- initState後,會被呼叫。
- InheritedWidget發生變化時,會被呼叫。
4. build
5. didUpdateWidget
- build後,會被呼叫。
- hot reload後,會被呼叫。
- 如果parent widget呼叫setState,child widget的didUpdateWidget才會被呼叫。
— — — — 與Widget互動 — — — —
6. setState
- 透過setState,觸發build,重繪Widget。
7. build
— — — 移除Widget或離開頁面 — — —
8. deactivate
- 在Element Tree中,State Widget的位置發生了變化,此時需暫時移除State Widget時,才會被呼叫,例如: 頁面切換時。
9. dispose
- State Widget永遠銷毀時,才會被呼叫。
希望今天的介紹讓你對Flutter的Lifecycle有更深入的了解 :)