Widget 分为了两种类型,分别为 StatelessWidget 和 StatefulWidget。

顾名思义,StatelessWidget 就是无状态的组件,它只是作为一个不发生任何更新状态的组件。比如,每秒刷新时间的组件,必须用 StatefulWidget。在一个 UI 中,有一些部分的组件是不会发生数据变化的,与之相反的就是有数据变化的组件。因此,Widget 分成有状态和无状态的 Widget。

下面是一个有状态组件的代码:

class BootPage extends StatefulWidget {
const BootPage({Key? key}) : super(key: key); @override
State<BootPage> createState() => _BootPageState();
} class _BootPageState extends State<BootPage> {
@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 来负责。

最新文章

  1. 安装ganglia
  2. java:关于文件下载
  3. intelj对我来说比较常用的快捷键
  4. mysql 导出慢
  5. Android动画效果生动有趣的通知NiftyNotification(Android Toast替代品)
  6. GLSL 中的光照计算
  7. [原]poj-2488-water-DFS
  8. Servlet 小试牛刀(doGet,doPost)
  9. UVA 140 (13.07.29)
  10. 理解angularJs中的$on,$broadcast,$emit
  11. C#语法——await与async的正确打开方式
  12. MySQL数据连表查询思路
  13. buildroot管理uboot+kernel+rootfs
  14. vi/vim 文字处理器常用命令
  15. 当Elasticsearch遇见Kafka
  16. Android 百度sdk5.0定位
  17. .NET MVC中的防CSRF攻击
  18. netty 之 传统的阻塞io 体系回顾
  19. dede 栏目及子栏目
  20. 解决ThinkPHP的Create方法失效而没有提示错误信息的问题

热门文章

  1. 【中间件】Docker
  2. 单节锂电池充电管理芯片,IC电路图
  3. PW6276是一颗高效同步升压转换芯片,内部集成低阻抗功率 MOS
  4. .net6+wpf制作指定局域网ip无法上网的arp欺诈工具
  5. @ApiImplicitParams注解的详细使用
  6. 9、手写一个starter
  7. Linux中的infuxdb安装及数据迁移
  8. [cocos2d-x]用getContentSize()返回的值用CCLOG打印必须用%f
  9. 线段树套线性基——题解P4839 P哥的桶
  10. day09-AOP-02