1.Widget 的状态分类
在 ios 中,我们可以通过直接更改 View 来更新视图。但是在 Flutter 中,Widget 是不可变的并且不会直接更新,而是必须使用 Widget 的状态。 Widget 有两种状态分类分别是
无状态的 StatelessWidget- 特点: StatelessWidget 是不可变的,设置以后就不可再变化,所有的值都是最终的设置。
有状态的 StatefulWidget- 特点:StatefulWidget 可以保存自己的状态,但是 Widget 是不可变的,因此需要配合 State 来保存状态。
2.根 Widget 的种类
| 名称 | 特点 |
|---|---|
| MaterialApp | 需要自定义风格,可以使用 WidgetsApp |
| MaterialApp | Material Design 风格的 Widget |
| CupertinoApp | iOS 风格的根 Widget |
3. State 拥有自己的生命周期,如下所示:
| 名称 | 状态 |
|---|---|
| initState | create 之后被 insert 到渲染树时调用的,只会调用一次 |
| didChangeDependencies | state 依赖的对象发生变化时调用 |
| didUpdateWidget | 构建 Widget 时调用 |
| deactivate | 当移除渲染树的时调用 |
| dispose | Widget 即将销毁时调用 |