因此,我了解到重建 Flutter 应用程序的特定部分以显示 UI 的更改的想法,并且我了解到重建整个屏幕在时间方面是昂贵的,而且应用程序可能会重建整个屏幕小部件树。
我发现使用一个名为provider的包Provider包文档
很容易解决这个问题,我试着忍受学习新技术。
然而,Flutter 宣布了一个名为 StatefulBuilder 的新 widget StatefulBuilder Documentations,理论上它的作用是相同的,但我想知道在两者之间进行选择时是否还有其他需要考虑的地方?
StatefulBuilder
是一个很好的解决方案。例如,在 Uber 这样的乘客应用程序中,司机可以通过切换按钮更改其空闲状态。这里开关按钮的状态独立于屏幕的其余部分,因此为了实现这一点,我们可以将开关按钮包装在有状态按钮内。
但是如果我们需要处理全屏或列表等的复杂状态,那么最好使用
stateful
小部件或 Provider
进行状态管理。使用提供程序的优点是它允许我们将业务逻辑分离到一个单独的类中(就像视图模型一样)。