「这是我参与11月更文应战的第25天,活动概况检查:2021最后一次更文应战」。
在iOS开发中,咱们都知道控制器的生命周期
,从出现到消失。在flutter
中咱们的widget
的生命周期是怎么样的,一起学习下。
1. Widget生命周期的基本概念
- 生命周期
生命周期是从
创立到毁掉
的进程,实际使用中便是各种回调方法(函数调用)。 意图便是为了让咱们知道封装好的Widget处于什么样的状况
。 - 效果
咱们通过监听
Widget的生命周期
,做出对应的操作,比如initState
初始化数据:创立数据或许发送网络请求。dispose
的时分内存管理,毁掉数据,监听者或许Timer等。
2. Widget的生命周期
2.1 StatelessWidget
对于StatelessWidget
来说没有状况,因而只有
- 初始化
init
-
build创立
(每次页面制作会调用build)
2.2 StatefulWidget
init初始化

createState
createState
是创立Widget的state
的时分创立的,这个方法只调用一次

state的init
咱们创立State
的时分会履行初始化方法,只会履行一次

initState()
initState
在创立state
的时分调用,只会履行一次
,通常咱们会在这里做些数据方面的处理或许一些初始化操作
,此时view还没有加载
,类似咱们的viewDidload
。

didChangeDependencies
didChangeDependencies
在initState
后当即调用,之后在StatefulWidget
依靠的InheritedWidget
发生变化后,didChangeDependencies
才会调用,因而didChangeDependencies
可以屡次被调用。后边咱们会介绍InheritedWidget
:数据同享

build
build是制作页面的时分调用
,初始化的时分在didChangeDependencies后调用
,咱们主动调用setState()
的时分会重新调用build
方法进行制作页面渲染,通常咱们在build
主要是创立widget
,调用其他方法会影响渲染效率
。

-
addPostFrameCallback
addPostFrameCallback
是在渲染完毕
都进行调用,一般是在initState
中调用,只会调用一次。

-
didUpdateWidget
组件更新
的时分会进行调用,通常widget初始化
后会调用一次

-
deactivate
移除组件
的时分调用


声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。