Flutter关于StatefulWidget中State刷新时机的一点实用理解

刚入门flutter开发,使用StatefulWidget踩了很多坑,就我遇到典型问题谈谈见解。

1.initState方法只会在控件初始化的时候执行一遍。

2.控件内部执行setState方法,则会每次执行build方法。

3.控件销毁会执行dispose方法,所以一些未释放的资源可以在该方法中执行,例如计时器。

4.使用控件则外部执行setState方法,控件内部会执行didUpdateWidget方法和build方法。

5.需要外部刷新控件的状态,可以在didUpdateWidget上处理,initState不执行,所以千万不要在initState处理。

6.外部使用控件时遇到三目运算符:条件?Widget A:Widget B;类似的情况时,当执行了Widget A,外部条件改变时,执行了Widget B时,再执行到Widget A时,控件会重建,换句话说,就会执行initState,相反,从Widget A执行到Widget B ,Widget A会被销毁,即会执行dispose方法。

先总结这些,有啥不正确的地方欢迎评论指正。后续有啥感悟,我会继续追加文章。

相关推荐
花开彼岸天~1 天前
Flutter跨平台开发鸿蒙化定位组件使用指南
flutter·华为·harmonyos
hudawei9962 天前
flutter路由传参接收时机
开发语言·flutter·异步
花开彼岸天~2 天前
Flutter跨平台开发鸿蒙化日志测试组件使用指南
flutter·elasticsearch·harmonyos
昼-枕2 天前
【实战分享】我用Flutter为小餐馆开发的点餐系统
flutter
开心-开心急了2 天前
ai + fluent_ui 实现自定义winUI风格窗口
flutter·ui
儿歌八万首2 天前
Flutter自定义组件: 为横向列表自定义“进度条”式滚动指示器
flutter
PWRJOY2 天前
【flutter】项目配置文件 pubspec.yaml
flutter
徐安安ye2 天前
Flutter 与 Rust 混合开发:打造毫秒级响应的高性能计算引擎
开发语言·flutter·rust
xianjixiance_2 天前
Flutter跨平台三方库鸿蒙化适配指南
flutter·华为·harmonyos
SoaringHeart2 天前
Flutter组件封装:视频播放组件全局封装
前端·flutter