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