簡單理解Flutter widget 生命週期 頂 原

本文主要梳理一下StatefulWidget和StatelessWidget的生命週期

image

StatelessWidget

  1. 接收外部數據
  2. 執行部件構造方法
  3. 當輸入數據改變時會重新渲染UI

StatefulWidget

  1. 接收外部數據
  2. 執行部件構造方法和++狀態初始化方法++
  3. 當++傳入數據++和++本類數據++改變時都會重新渲染UI

image

這用到之前寫的一個例子01_widget_basic 第一次運行項目 image

  1. ProductsManager部件初始化
  2. 創建ProductsManagerState
  3. 調用ProductsManagerState中的initState方法
  4. ProductsManagerState渲染
  5. Products部件初始化
  6. Products渲染 當點擊add product按鈕數據發生改變時 1.數據_products發生了變化 通過setState方法通知數據發生了改變 ProductsManagerState build方法被調用
  7. 而Products進行了重新構造,也就是說當外部數據變化時 Products中的 _products 直接被替換成傳入的新數據而不是在修改原有數據

image

flutter擁有類似於react-native的狀態機刷新機制,得益於分離出了StatelessWidget和StatefulWidget,資源分配更加合理的了,代碼思路也清晰很多.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章