Flutter中的生命周期
最近在写Flutter的时候发现对Flutter生命周期的各个阶段比较模糊,现在想写点关于Flutter生命周期的内容,巩固一下自己。
Widget的生命周期
我是一名Android开发,Android的生命周期是指Activity的生命周期。那么Flutter的生命周期其实就是指Widget的生命周期,并且是通过state来体现的,Flutter的核心设计思想就是一切皆Widget。
App是一个特殊的Widget,因为除了要处理视图界面的生命周期,还需要处理App启动到后台到退出App等状态。
无论对于Widget还是App,Flutter框架都提供了相应的回调方法,下面分别介绍Widget和App这两个不同类型的生命周期
Widget(的State)的生命周期
从图中可以看出State的生命周期可以分为3个阶段:创建、更新和销毁。
创建
State创建初始化时会依次执行,构造方法、initState、didChangeDependencies和build,随后完成页面渲染。
1.构造方法是State生命周期的起点,Flutter会通过调用StatefulWidget.createState()来创建一个State。通过构造方法可以接收父Widget传递的初始化UI配置数据,来决定Widget最初的呈现效果。
2.initState会在State对象被插入视图树的时候调用。在State生命周期中只会调用一次,一般在这里做一些初始化工作,比如为状态变量设置默认值等。