衡水建网站,电子商务网站环境建设,东莞建设银行,mirana wordpress在 Flutter 中#xff0c;StatefulWidget 和 StatelessWidget 这两种 Widget 的生命周期不同#xff0c;主要关注的是 StatefulWidget#xff0c;因为它涉及到状态的管理和更新。
StatefulWidget 的生命周期#xff1a;
1. 创建阶段 (Create)
createState()#xff1a;…在 Flutter 中StatefulWidget 和 StatelessWidget 这两种 Widget 的生命周期不同主要关注的是 StatefulWidget因为它涉及到状态的管理和更新。
StatefulWidget 的生命周期
1. 创建阶段 (Create)
createState() 当你创建一个 StatefulWidget 时createState() 方法会被调用并返回一个与该 StatefulWidget 关联的 State 对象。这个方法只会被调用一次。
2. 初始化阶段 (Initialize)
initState() 这个方法在 Widget 创建并且 State 对象被插入到 Widget 树时调用。它通常用于执行一些初始化操作比如网络请求、订阅流、设置初始值等。initState() 只会被调用一次。
3. 构建阶段 (Build)
build(BuildContext context) 每次 State 对象的状态发生变化时Flutter 会调用 build() 方法来重新构建 Widget 树。这个方法会在 State 对象的生命周期中多次调用通常在 setState() 被调用时或者当父 Widget 发生变化时。
4. 依赖变化 (Dependencies Changed)
didChangeDependencies() 当 State 对象的依赖发生变化时例如InheritedWidget 的数据发生变化Flutter 会调用此方法。它会在 initState() 之后、build() 方法之前调用并且会在 build() 每次重新构建时调用。
5. 更新阶段 (Update)
setState() setState() 是更新 State 对象的状态并触发 build() 方法重新执行的方式。当调用 setState() 时Flutter 会重新渲染 Widget。
6. 销毁阶段 (Dispose)
dispose() 当 State 对象不再需要时dispose() 会被调用。在这个方法中我们可以释放资源如取消订阅流、停止动画、清理控制器等。这个方法只会被调用一次。
StatefulWidget 生命周期的总结图
1. createState() - 2. initState() - 3. build() - 4. didChangeDependencies() (如果依赖变化)|setState() 触发 build()|5. dispose()StatelessWidget 的生命周期
StatelessWidget 没有 State因此没有复杂的生命周期管理。它的生命周期主要是
构建阶段当它第一次被插入到树中时build() 会被调用。更新阶段每次父 Widget 发生变化时build() 方法也会被调用。
StatelessWidget 生命周期相对简单因为它不涉及状态的改变。