1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| 1.在 Flutter 中,Widget 是构建用户界面的基本单元。 可以将 Widget 理解为 UI 元素的描述,它定义了 UI 应该如何显示。
2.Widget 的类型: Flutter 中主要有两种类型的 Widget:
2.1 StatelessWidget(无状态 Widget)
2.1.1 定义: -StatelessWidget 是不可变的,这意味着它们的属性在创建后不能更改。 -它们适用于不需要维护状态的 UI 部分,例如静态文本、图标或图像。
2.1.2 特点: -性能较高,因为不需要管理状态。 -简单易用,适用于静态 UI。
2.1.3生命周期: -build():当 Widget 需要构建 UI 时调用。
2.2 StatefulWidget(有状态 Widget)
2.2.1 定义: -StatefulWidget 是可变的,它们可以维护自己的状态,并在状态更改时更新 UI。 -它们适用于需要动态更新 UI 的部分,例如表单、动画或用户交互。
2.2.2 特点: -可以管理内部状态,实现动态 UI。 -需要与 State 对象配合使用,State 对象负责维护 Widget 的状态。
2.2.3 生命周期: -createState():创建与 StatefulWidget 关联的 State 对象。 -initState():State 对象初始化时调用。 -build():当 Widget 需要构建 UI 时调用。 -didUpdateWidget():当 StatefulWidget 的配置更改时调用。 -setState():当 State 对象的状态更改时调用,触发 UI 更新。 -deactivate():当 State 对象从 Widget 树中移除时调用。 -dispose():当 State 对象被永久移除时调用。
3.区别总结: -StatelessWidget 适用于静态 UI,而 StatefulWidget 适用于动态 UI。 -StatelessWidget 没有内部状态,而 StatefulWidget 可以管理内部状态。 -StatelessWidget 生命周期相对简单,StatefulWidget 生命周期相对复杂。
4.生命周期简单说明:
4.1StatelessWidget: -build():仅在需要构建 UI 时调用。
4.2StatefulWidget: -createState():创建 State 对象。 -initState():初始化 State。 -build():构建 UI。 -didUpdateWidget():Widget 配置更改。 -setState():状态更改,触发 UI 更新。 -deactivate():State 从 Widget 树移除。 -dispose():State 永久移除
|