本文主要梳理一下StatefulWidget和StatelessWidget的生命週期
StatelessWidget
- 接收外部數據
- 執行部件構造方法
- 當輸入數據改變時會重新渲染UI
StatefulWidget
- 接收外部數據
- 執行部件構造方法和++狀態初始化方法++
- 當++傳入數據++和++本類數據++改變時都會重新渲染UI
這用到之前寫的一個例子01_widget_basic 第一次運行項目
- ProductsManager部件初始化
- 創建ProductsManagerState
- 調用ProductsManagerState中的initState方法
- ProductsManagerState渲染
- Products部件初始化
- Products渲染 當點擊add product按鈕數據發生改變時 1.數據_products發生了變化 通過setState方法通知數據發生了改變 ProductsManagerState build方法被調用
- 而Products進行了重新構造,也就是說當外部數據變化時 Products中的 _products 直接被替換成傳入的新數據而不是在修改原有數據
flutter擁有類似於react-native的狀態機刷新機制,得益於分離出了StatelessWidget和StatefulWidget,資源分配更加合理的了,代碼思路也清晰很多.