我正在开发一个具有很多屏幕和页面的应用程序。我读过某个地方,您应该尽可能使用无状态小部件。
那是为什么?
如果我有很多屏幕,那这些屏幕应该是无状态的吗?然后里面的内容是有状态的?将屏幕和小部件都设置为有状态是否更好?
答案 0 :(得分:3)
您应该问自己一些有关屏幕/页面的问题,以确定它是无状态还是有状态。
在不需要时将Stateful变为不当行为是一种不良做法。一个好主意可能是始终以无状态小部件开始,如果需要,您可以使用Alt + Enter快捷键(Android Studio)轻松将其更改为有状态。
答案 1 :(得分:2)
我始终从创建无状态小部件开始并使用它,直到必须更改某些状态为止。因此,我可以从Intellij / AS快速使用`Alt-Enter / Convert to Statefull将其更改为有状态的。 (做逆运算并不容易,所以...)。
此外,如果您将Stateful窗口小部件与诸如流之类的异步机制一起使用,则可以一次构建该窗口小部件,并使用流来更新所需的信息,这不会对应用程序的性能产生太大影响。但是,如果您多次调用setState,则可能会使您的应用程序降级,因为对于每个setState,都会重建小部件树。
此article from the flutter文档显示了有关在Flutter应用中处理状态变化的有趣提示: