生命周期概念
1.生命周期本质是回调方法和函数
2.通俗的讲就是你的封装的Widget(小组件)处于什么状态
生命周期作用
1. 监听Widget事件
2. 初始化数据
- 创建数剧
- 发送网络请求
3. 内存管理
- 销毁数据
- 销毁监听着
- 销毁timer等等
Widget的生命周期
1.Stateless(Widget对象)
- Widget构造方法
- build方法
2.Stateful(Widget对象 和 State对象)
- Widget构造方法
- Widget的CreateState
- State的构造方法
- State的initState方法
- didChagedDependencies方法(改变依赖关系时候调用)
- 当依赖的inheritedWidget发生变化的之后,方法也会调用
- State的build方法
- 当调用setState方法时候,会重新调用build方法
- 当Widget销毁的时候,调用State的dispose方法
Widget渲染原理
并不是所有的Widget都会被独立渲染!只有继承RenderObjectWidget的才会创建RenderObject对象,加入到Render Tree里面去 才会被渲染
Widget树、Element树、Render树
- 每一个Widget都会创建一个Element对象
- 隐式调用createElement方法,将Element加入到Element
树中(它会创建三种Element)
- RenderElement主要创建Renderobject对象
(继承RenderObjectWidget的Widget会创建RenderElement)
- 创建RanderElement
- Flutter会调用mount方法,调用createRanderObject
- StatefulElement 继ComponentElement
(StatefulWidget会创建StatefulElement)
- 调用createState方法,创建State
- 将Widget赋值给State
- 调用State的build方法,并将自己(Element)传出去
(build方法里的context就是Widget的Element!)
- StatelessElement 继承ComponentElement
(StatelessWidget会创建StatelessElement)
- 主要就是调用build方法 并且将自己(Element)
传出去