Widget中的State到底是什么?

  • StatefulWidget 应对有交互、需要动态变化视觉效果的场景
  • StatelessWidget 则用于处理静态的、无状态的视图展示
  • 当你所要构建的用户界面不随任何状态信息的变化而变化时,需要选择使用 StatelessWidget,反之则选用 StatefulWidget。前者一般用于静态内容的展示,而后者则用于存在交互反馈的内容呈现中。
  • StatefulWidget 是以 State 类代理 Widget 构建的设计方式实现
  • Widget 是不可变的,更新则意味着销毁 + 重建(build)。StatelessWidget 是静态的,一旦创建则无需更新;而对于 StatefulWidget 来说,在 State 类中调用 setState 方法更新数据,会触发视图的销毁和重建,也将间接地触发其每个子 Widget 的销毁和重建。
  • 避免滥用StatefulWidget,这样会引起性能损耗。
  • 开发过程中可以通过判断“通过父 Widget 初始化时传入的静态配置能否在初始化过程中完全确定子Widget的展示样式”这一原则来判断是否使用StatefulWidget。

你可能感兴趣的:(Widget中的State到底是什么?)