// 這是一個 StatefulWidget 的類classMyAPPextendsStatefulWidget{MyAPP({Key?key}):super(key:key);/**
? * 初始化期 第一步
? * createState() 是初始化時期的生命周期函數(shù)
? * 創(chuàng)建 StatefulWidget 之后調(diào)用的第一個方法
? * 該方法是抽象方法 , 必須覆蓋重寫該方法
? */@overrideState<MyAPP>createState()=>_MyAPPState();}class_MyAPPStateextendsState<MyAPP>{/**
? * 初始化期 第二步
? * initState()
? * 在該方法中執(zhí)行一些初始化操作
? */@overridevoidinitState(){super.initState();}/**
? * 更新期 第一步
? * didChangeDependencies()
? * 創(chuàng)建 Widget 組件時 , 調(diào)用完 initState 方法后 , 調(diào)用該方法
? */@overridevoiddidChangeDependencies(){super.didChangeDependencies();}/**
? * 更新期 第二步,即在 didChangeDependencies() 后立即調(diào)用
? * 或者,如果調(diào)用 setState() 方法也會再次調(diào)用
? * 頁面每次渲染時都會調(diào)用此方法
? * 是整個 Widget 的入口,可以通過在每個頁面查找 build 來定位頁面問題
? */@overrideWidgetbuild(BuildContext context){returnContainer();}/**
? * 更新期的生命周期函數(shù)
? * 該生命周期方法只有在父容器組件重繪時才調(diào)用該方法
? * 傳入的 oldWidget 參數(shù)是舊的組件信息, 將當前的 Widget 與舊的 Widget 進行對比, 如果不相等, 便執(zhí)行額外操作;
? */@overridevoiddidUpdateWidget(covariant MyAPP oldWidget){super.didUpdateWidget(oldWidget);}/**
? * 銷毀時期 在 dispose() 之前調(diào)用
? * 只有在組件被移除時才調(diào)用
? */@overridevoiddeactivate(){super.deactivate();}/**
? * 銷毀時期
? * 組件被銷毀時調(diào)用, 要在該方法中進行資源的釋放與銷毀操作
? * 比如 Stream 等,需要在這里釋放
? */@overridevoiddispose(){super.dispose();}}