作者:lw65112779 | 来源:互联网 | 2023-08-12 10:54
Widget分为了两种类型,分别为StatelessWidget和StatefulWidget。顾名思义,StatelessWidget就是无状态的组件,它只是作为一个不发生任何更
Widget 分为了两种类型,分别为 StatelessWidget 和 StatefulWidget。
顾名思义,StatelessWidget 就是无状态的组件,它只是作为一个不发生任何更新状态的组件。比如,每秒刷新时间的组件,必须用 StatefulWidget。在一个 UI 中,有一些部分的组件是不会发生数据变化的,与之相反的就是有数据变化的组件。因此,Widget 分成有状态和无状态的 Widget。
下面是一个有状态组件的代码:
class BootPage extends StatefulWidget {
const BootPage({Key? key}) : super(key: key);
@override
State createState() => _BootPageState();
}
class _BootPageState extends State {
@override
Widget build(BuildContext context) {
return Text('Hello World!');
}
}
BootPage 类继承 StatefulWidget 抽象类,有状态的组件必须维护 State 抽象类,这就是有状态的组件。State 中定义了一个组件在发生数据变化时的各种生命周期函数。比如,didUpdateWidget()
函数是每当组件数据更改时调用。
StatelessWidget 被实例化之后立马调用 Widget build(BuildContext context)
,而 StatefulWidget 是先调用 State createState()
,然后再调用 build 函数。因为 ,StatefulWidget 除了构建界面以为还要维护界面上的各种数据变化,而数据变化主要由 State 来负责。
简单理解 Flutter 中 StatelessWidget 和 StatefulWidget的相关教程结束。