1 StatelessWidget

不需要状态改变的widget,它没有要管理的内部状态。

Text,CircleAvator 都是其子类

其传递的参数别final 修饰,不可变的

无状态的widget build 方法在以下三种情况下进行调用

  • 当widget 插入到数中去
  • 当widget 父级更改配置的时候
  • 当他依赖的inheritewidget 发生变化的时候

2 StatefulWidget

是可以改变的,使用setState管理器状态的改变。调用setState 方法,Flutter会重新运行build 方法,以便应用程序更新状态。

checkBox ,slider ,Form,Textfiled 都是有状态的Widget,也是StatefulWidget的子类

3 widget的状态选择

是有状态和无状态的,取决于是否他们依赖与状态的变化。

4 状态管理

  • 每一个widget 管理自己的状态
  • 父widget 管理widget的状态
  • 混合搭配的管理方法

采取管理方法:

  • 如果所讨论的状态是用户数据,例如复选框的选中和未选中或者是滑块的位置,状态最好由父widget来管理
  • 如果widget的状态取决于用户的动作,例如动画,则最好自身来进行管理
  • 如果还是不确定谁来管理状态,让父类进行管理

6-flutter 状态管理相关推荐

  1. Flutter 状态管理指南之 Provider

    2019 Google I/O 大会,Flutter 团队在"Pragmatic State Management in Flutter "演讲上正式介绍了 Provider.自此 ...

  2. Flutter 状态管理之Bloc上

    前言:Flutter 的状态管理插件有很多,比如 Provider,GetX 还有本篇要讲述的 Bloc .Bloc 目前最新的版本是 flutter_bloc: ^8.0.1. BLoC 依赖 St ...

  3. flutter 状态管理 flutter_bloc 的使用以及总结

    Bloc介绍 flutter_bloc 8.0,直接把mapEventToState方法去掉,需要手动注册事件处理器,不用再写if else 来判断event ,也不用写yield flutter_b ...

  4. Flutter状态管理1-ChangeNotifierProvider的使用

    关于Flutter中的状态管理,可以参考官网的介绍:Simple app state management 中文网的介绍:简单的应用状态管理 Flutter 官方的两个sample: provider ...

  5. FlyAI小课堂:Flutter 状态管理之BLoC

    在正式介绍 BLoC之前, 为什么我们需要状态管理.如果你已经对此十分清楚,那么建议直接跳过这一节. 如果我们的应用足够简单,Flutter 作为一个声明式框架,你或许只需要将 数据 映射成 视图 就 ...

  6. Flutter 状态管理

    目录 一.状态管理简介 1.1 为什么需要状态管理 1.1.1 Flutter与adr/ios UI框架区别 1.1.2 状态管理框架使用场景 1.2 需要解决的问题 二.状态管理框架现有方案调研 2 ...

  7. 【flutter-mobx】Flutter 状态管理- 使用 MobX实现计数器

    实践flutter mobx: 提示:对下面这篇掘金文章的实践,通过flutter结合 mobx 实现计数器,过程中也添加了一些处理和注释,代码放在feat/mobx下 https://juejin. ...

  8. Flutter 状态管理之Bloc下

    这篇是使用 Bloc 来实现业务逻辑与UI分离.主要就是慕课网课程列表的网络请求并且展示. 首先定义一个基础事件的类,如下: abstract class LessonEvent {} 然后我定义了3 ...

  9. flutter 局部状态和全局状态区别_Flutter状态管理

    Flutter状态管理 状态管理是声明式编程非常重要的一个概念,我们在前面介绍过Flutter是声明式编程的,也区分声明式编程和命令式编程的区别. 这里,我们就来系统的学习一下Flutter声明式编程 ...

  10. Flutter 超简单状态管理

    Flutter 状态管理 目前Flutter已经有许多状态管理的方案,但就我个人而言,并不能完全满足我的要求.我希望状态管理更加简单,而不是成为负担,我希望状态管理更加可靠,而不是使用过于复杂的实现. ...

最新文章

  1. LeetCode Add Binary
  2. OpenCV学习笔记(一)(二)(三)(四)(五)
  3. 在参数上使用@Param(“paramName”)注解”解决了传多个参数的问题
  4. 利用js的闭包原理做对象封装及调用方法
  5. plsql轻量版游标的使用
  6. 问题:HikariPool-1 - Shutdown initiated...的解决
  7. 让XCode的Stack Trace信息可读
  8. 疑似小米11 Pro保护壳曝光:横向矩阵相机设计
  9. 浅析tornado协程运行原理
  10. who whos exist inf
  11. UITableView+UITableViewStyleGrouped 处理section之间间隙
  12. 如何安装matlab?官网下载详细教程
  13. QThread之重写run() 实现线程与业务解耦
  14. kX3552常用插件集
  15. 2021年度总结—四非计算机保研经历(参营:清华网研院、中科大先研院、华师大数据科学院、厦大计算机系、上科大信息学院)
  16. 猫咪突然嘴巴合不住是怎么回事?
  17. 蚂蚁金服区块链创新大赛
  18. linux设置r语言环境,R语言 环境设置
  19. 山石防火墙命令查看配置_hillstone 防火墙基本配置
  20. 视频融合应用没听说过?

热门文章

  1. getURLParameters - 网址参数
  2. 14_传智播客iOS视频教程_instancetype
  3. indows上的android开发环境软件架构5
  4. 获取SQLServer数据库中所有表
  5. 不要千言万语,一组漫画让你秒懂最终一致性
  6. PHP代码保护——Zend Guard
  7. DataGridView 密码列(显示为*号)的设置
  8. C#中Base64之编码,解码方法
  9. Asp.Net中查询域名的Whois信息
  10. 从FFmpeg 4. 2源码中提取dshow mjpeg code步骤