可通過WidgetsBinding類對widget生命周期的回調進行監控。
????????createState:StatefulWidget?中用于創建?State;
????????initState:State?的初始化操作,如變量的初始化等;
????????didChangeDependencies:initState?調用之后調用,或者使用了?InheritedWidget?組件會被調用,其中?InheritedWidget?可用于Flutter?狀態管理;
????????build:用于?Widget?的構建;
????????deactivate:包含此?State?對象的?Widget?被移除之后調用,若此?Widget?被移除之后未被添加到其他?Widget?樹結構中,則會繼續調用?dispose?方法;
????????dispose:該方法調用后釋放?Widget?所占資源;
????????reassemble:用于開發階段,熱重載的時候會被調用,之后會重新構建;
????????didUpdateWidget:父?Widget?構建的時候子?Widget?的?didUpdateWidget?方法會被調用。
????????在flutter中,?萬物皆Widget。?Widget不能更新,?只能重建。StatelessWidget創建后不能改變,StatefulWidget可以改變,但其實也是通過重建的方式進行改變,因此代價較大,要避免濫用,防止整個UI全部重建。
? ? ? ? 會引起Widget重建的操作:
? ? ? ? (1)主動調用setState
? ? ? ? (2)didChangeDependency:語言、系統主題變化
? ? ? ? (3)父widget重繪調用didUpdateWidget