「这是我参与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,调用其他方法会影响渲染效率。
-
addPostFrameCallbackaddPostFrameCallback是在渲染完毕都进行调用,一般是在initState中调用,只会调用一次。
-
didUpdateWidget组件更新的时分会进行调用,通常widget初始化后会调用一次
-
deactivate移除组件的时分调用
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。










